Skip to main content

Full text of "CBM 8-Bit Magazine Index: Commodore World"

See other formats


SPTUTITTETE j i iti ’ j ’ 
] j iT] TTT TT iti HTT | iT] HHT PITT 


Hil HH HH} HH THA HH} HHH HH / HH JETTED WH WET TTL Hii] MTT} WL Hi] Hi 
i, HAN IH Hh ii HH) HT Hi ; Mi Ml) / UT) HY j TTL HT HTT j i 
. A\ om LUTVHTEY " jae nekebeeeennns | Hen ] 16 
ty IVA ms M | MT {teed HHS aint: fine hie 

WH 1} Welland ifn aa TTT TUT me ith iH} WAH HiT Hf} HITT (| HAH HI RUS) | 


ik HW } HIT) 
A) UA He Y] MT | MH Hi} Hi HH Hill HL, THT THT 
. }) WH Hi } HITT | HHH} Hi} HH TT Hf 
) If HH ITET I Hi} 
}} ee ‘ i) dl ul | nie 4 ii HITT 
Hae WY): 5, MI, \c} AVANE?, AO) y ¢ NN OD OBEY 4) Bie TI I 
|) HT Mi WA \i\\ Hii HH HA HH WH i) HHH} HHH) Ninh HH} HHH WTI} HH) Hi} i) a 
Hii WH MIT HHI HT if} ATT HT HH HTT tl] HH THT Ht HH Hill 
rea | HH} WH Hitt li WT HT HH / | 
I] } HHI) WA HI MTT Ih 
i TT | Hi) if} if TT iH] i ] 
HH HI Hf HH HT HHHi| Hh} iif HH HH} Hii | j Hi) i} HH | TH Wii HT] / 
Hill HH} HTT} Hi HI} Hl Hf Hil} i]) Wi HH; HH} HW Hi) HH } HHI HHH} HE WH) PAT 
{| TA HHH} HH HHH) HHH HHT} HH if) HT | WHTTI| | TTT j 
| | HH) HAH j TTL, HHL} HI 


=| a] ! wi oy HT TH 
HEIHE 43). els v} 1) Ou ja!) Inch “orn oyele ©) 4 


.: Co Dinimor 


TTT HH LH AHH 
HH} WAT) 


WH) Mi =e fl ds'sc 


HT 


HH} 
Hi} HH} Hit 
HH 


log 2 Demi OS 


WHA } 
i HT HI il } i} HTT HI if} HHT Hi | if i Hi 
HT} HL |! HHH HiT} Hy) Hi HT HT HW) WITH) HU HTT iH AHL Hit ij 
| TUTTE LTT 


AT 


iT} 
| { ] 


MT H HD 
TH 


‘SEC cto C IDJELASES 
a): ani 


JORDAN 


MOND 
NIGHT @ 
FOOTBALL 


Whether you're 
_passing for the game- ve RIT 
p winning touchdown, aa ual nny aD 
Flight jumping through x eh Bist NANT iy A 
oncoming traffic, or bd Ait serie) 
dodging SAM missiles 
over North Vietnam, 
you are sure to enjoy 
these AAA rated games. Each of these packages represent 
some of the finest games within their class. They won't last 


long, sO order yours now! 


Areade (Pack 1) Adw./Srratege (Pack 2) 
Miwa = Sportz (Pack 3) Air Comoat (Pack &) 


Only $20.00 per Package! 
Plus Shipping & Handling 
(Continental U.S. Add: 1-$5.00, 2-$5.50, 3-$6.00, $4-$6.50 
All other destinations, see CMD main ad; Page 28) 


With this special 
offer, buy three or 
more packages Xs 
and get a 1670 {a 

(1200) baud 
modem 


C¢ ON 


ISSUE 16 


COMMODORE 


WORLD 


THE NEWS MAGAZINE FOR COMMODORE 64 & 128 USERS 


GENERAL MANAGER 
Charles R. Christianson 
5 
Eoitor 
Doug Cotton 
oa 
ADVERTISING SALES 
Charles A. Christianson 
(413) 525-0023 
° 
PHOTOGRAPHY 
Wayne Wrubel 
Sd 
Grapuic Arts 
Doug Cotton 
> 
Evectronic Pre-Press & PrinTING 
Mansir/Holden 
5 
Cover Design by Doug Cotton 


Commodore™ and the respective Commodore product names 
are trademarks or registered trademarks of Escom GmbH. 
Commodore World is in no way affiliated with Escom GmbH., 
owner of the Commodore logo and technology. Commodore 
World is published 8 times annually by Creative Micro Designs, 
Inc., 15 Benton Drive, East Longmeadow MA 01028-0646. 
Second-Class Postage Paid at East Longmeadow MA. Annual 
subscription rate is US$29.95 for U.S. addresses, US$35.95 
for Canada or Mexico, US$45.95 for all EC Countries, and 
US$57.95 to all other addresses worldwide, All subscription 
payments must be provided in U.S, Dollars. Mail subscriptions 
to CW Subscriptions, c/o Creative Micro Designs, Inc., P.O. 
Box 646, East Longmeadow MA 01028-0646, 


Entire contents copyright © 1995 by Creative Micro 
Designs, Inc., unless otherwise noted. No part of this 
publication may be printed or otherwise reproduced by any 
means without prior written consent from the publisher. All 
programs published in this publication are for the personal use 
of the reader, and may not be copied or in any way distributed. 
All rights reserved, Programming examples and routines in this 
issue which are presented for educational purposes may be 
used in the creation of programs by the purchaser of this 
magazine, provided credit for the routines is clearly presented 
in either the program documentation, or the program itself. 
Creative Micro Designs, Inc., assumes no responsibility for 
errors or omissions in editorial, program listings or advertising 
content. Creative Micro Designs, Inc. assumes no liability for 
advertisers claims or reliability. 


POSTMASTER: Send address changes to: CW Address 
Changes, c/o Creative Micro Designs, Inc., P.O. Box 646, East 
Longmeadow MA 01028-0646, 


AUGUST/SEPTEMBER 1996 


FearuRrEes 


14 


Commopore DEMOS by Sherry Freedline 
Part two of our series takes a look at four more great demo programs. 


16 Neurat Network on A Commopore 64 by John Walker 
Find out how computers differ from human brains. 
20 A 6502 Procranmer’s INTRODUCTION TO THE 65816 by Brett Tabke 
Learn how WDC’s super processor differs from what you're used to. 
37 A Grower's Guide To User Groups by Jayme Rice 
Get some hot tips on drawing new members to your group. 
Reviews 
30 Ganes by Jason Compton and Sherry Freedline 
Forgotten Worlds, Grand Prix Circuit, and Death Sword. 
32 THe Sortware MANUAL: ProGRAMMING THE 65816 by Jim Brain 
Find out about WDC's reference book on programming. 
Cocumns 
10 Just For Starters by Jason Compton 
Find out what you can do with the User Port. 
12 Graptic INTERPRETATION by Paul Sullivan 
Looking for some geoWrite goodies? 
34 The SySor’s Corner by Max Cottrel 
Create ANSI menus for your BBS. 
38 Carrie DETECT by Gaelyne R. Gasson 
Learn how to transfer files on the Internet with FTP. 
42 GEeOPROGRAMMIST by Maurice Randall 
Find out how your GEOS applications can create data files. 
44  AssemBty LINE by Jim Butterfield 
An inside look at the Processor Status register flags. 
46 PERIPHERAL VISION by Jim Butterfield 
An overview of how Commodore's peripheral bus operates. 
48 Basic INsTINCTS by David Pankhurst 
More fractal programming! 
48 Over Tue Epce by Harold Stevens, Jr. 
Pirates are still sailing in the Commodore scene. 
See Our NEW 
DEPARTMENTS CHECKSUM 
2 From tHe Epitor 8 ON Tre Horizon Utilit 
4 BAcKTALK 56  Ctassiried Avs y 
6 Commopore Trivia 56 Apverriser’s INDEX On Page 51 


There’s no question that this most recent cycle has 
been a hectic one. Our new assistant editor didn’t 
work out, so we're back to looking for someone to fill 
that position. In the meantime, all the editing, layout, 
and graphics creation that goes into each issue has 
fallen back into my lap. In addition, we've lost our 
photographer, Wayne, who was also CMD's repair 
technician. The latter spot has been filled, but we'll 
need to figure out what to do for photographs in 
upcoming issues. Despite these hurdles, we've 
managed to nudge the page count back up to 56, and 
I think we've produced a very well-rounded issue. Of 
course, I may be somewhat biased. 

There’s some bad news... a few hardware items 
have quietly dissappeared from the supply chain in 
the last few months. Notably missing in action: 
CMD'’s FD-4000, the Super 1750 Clone, 
SuperSnapshot, Action-Replay, VDC RAM Expansion 
kits, and disk drive RAM Expansion kits. These are 
sad losses, as there really aren't any products left that 
directly replace or duplicate what these products did. 
When suppliers run out of 1581 drives, no big deal, 
there are FD-2000 drives that can pretty much 
directly replace them; but losing both Super Snapshot 
and Action-Replay leaves users without any means to 
capture programs for archiving or operating from 
devices like CMD’s HD. Expect to see some rise in the 
value of these items in the used market. 

There are some positive things happening, as well, 
though... CMD's SuperCPU 64 has started shipping, 
and work on the 128 version is now under way. 
Maurice Randall has new versions of GeoFAX and 
GeoSHELL coming along soon, and he has also 
confirmed that he isn’t far off from releasing a new 
GEOS driver/Configure package that will reportedly 
revolutionize device handling under GEOS. Nick 


COMMODORE WORLD 2 


Rossi’s Novaterm 9.6 is now shipping on disk, and 
has brought us Zmodem, Ymodem-G, and a lot of 
other improvements. There are other software 
developments under way, too... Matt Desmond 
appears to be working regularly on his new version of 
Desterm, Electric Boys recently sent us some images 
created by a new C64 interlaced graphics editor that 
they are working on, and CMD is finishing up 
documentation for an English language version of 
GoDot. CMD is also heading up projects to produce a 
new 65816 assembler (SAS) and a machine language 
monitor (SuperJiffy MON), both targeted at 
SuperCPU developers; there are also indications that 
the long-awaited Menuette 128 may be back on track 
for release, along with an updated 64 version. So 
there are indeed some things for users to look 
forward to over the next few months. 

Meanwhile, there are some really nice things to see 
in this issue of Commodore World. Sherry Freedline 
brings us her second installment on Commodore 
demo programs; there's a very interesting article 
about how computers and human brains differ, along 
with a type-in program that lets the 64 emulate the 
brain’s ability to recognize patterns; Brett Tabke 
introduces the 65816 to 6502/6510 programmers 
(we've added a useful opcode list and informative 
programming models to this); and Jayme Rice, 
President of TCUG, presents some excellent ideas on 
promoting growth of user groups, In our regular 
columns, find out what the User Port is good for (/ust 
For Starters), how to create fractal images (BASIC 
Instincts), and how to use Internet File Transfer 
Protocol (Carrier Detect). We've also been rejoined 
this issue by Harold Stevens, Jr., who tackles the 
touchy subject of software piracy in Over The Edge. So 
what are doing still reading this editorial? Dive in! 


Doug Cotton 
Editor 


Issue 16 


W NEW Games Disk! The Compleat Jon: 11 Games! the 
whole gamut of gaming is covered here: artificial intelligence, 
role-playing, mazes, fantasy, science fiction, education and 
even non-violence (which was a radical concept in its time). 
These eleven Games are among the best ever published on 
LOADSTAR, Listed on the menu in chronological order, so 
you can see how Jon's style changed as the yeas rolled by, 
1581 disk 0021D3 $20. 1541 disk #0038D5 $20 


VW NEW Puzzle dist 
The Compleat Crossword: every 


crossword puzzie published in Puzzle Page in one huge 

collection! 220 puzzies! It uses Barbara Schulak’s CRUCIVERBALIST program to present the 
puzzies and allows you to “mark” a puzzie when it’s solved so that you know which you've 
solved and which you haven't yet. Each 1541 disk contains 110 puzzies. 1581 Disk #002003 
$20, Disk 1(1541) #003605 $10.Disk 2 (1541) #0037D5 $10 


crowerecay tear 


VW NEW CHl2y Productivity! The Compleat Lee O: six o 


Lee O. Clinton's best serious programs for the C-128 80- column mode. Finance, auto 
expense, kitchen helper, genealogy, resume writing, mutual funds! One 1541 disk #0032D5. 
One 1581 disk #001703 $10.00 


Y NEW Word Searen! Super Star Search 1: 200 original word 
search puzzles by Steven Thomas and Art Dudley, presented by John Serafino'’s modern point 
and click program. One 1541 disk #0011D5 One 1581 disk # D3 $20.00 


W New Story disk! The Compleat Prosequest '95: 
NEW!!! A 1541 disk with all of the entries in the 1995 short story Melt Kine on it, including 
the three grand winners. One 1541 disk #0035D5 One 1581 disk #0019D3 $5.00 


Soft Weer! LOADSTAR T-Shirts: timitea 


‘edition Fruit Of The Loom T-shirts. LOADSTAR’s nemesis, Knees 

Calhoon, stands up to regular washing and drying. Where else can 
parel? 50% Cotton//Polyester. $15.00 each 
mall #960025, Medium #960125, Large 
25, XX-L #960425 


Tools! Tutorials! The Compleat 


rammMefF: Best seller! Over Two megabytes of 

@ crammed and stuffed onto eight 5.25-inch disks or two 
1581 disks! Plus tools, extensions, languages, assemblers, tutorials and utilities! 5.25 set 
#0005D5, 3.5-inch disk #0005D3. For $5 more, get C= Hacking MAG #0006D3 (on 3.5-inch 
disks only and NOT available separately) to complete 
your programming set. $20.00 


PS Graupnics! Compleat PS Vol. 1 
The Print Shop by Broderbund or Printmaster required). 
er 1300 artistic and never before published PRINT SHOP 
images, Scan through the many PRINT SHOP images 
sequentially, by name, or by group number. Press a key and 
save the greene you want in 2-block, 3-block and even 
PRINTMASTER mone files! All that plus a printed guide! 
Each volume is $20.00, Vol, 1: C-64/128 3.5-inch disk item 
#0001d3, 5.25-inch disks item #0009d5. Vol. 2 (graphics from past LS issues): C-64/128 
3.5-Inch disk item #0002d3. 5.25-inch disks item #0010d5. 


_Load 


Ss 


n___Item# Price ea. T 


EQTY 


otal 


August/September 1996 


‘'\f— ro. a4 Smt 
CEOS Clipart 
LOADSTAR presents the biggest Geo 

‘ollection of clip art and fonts ever offered at one 
Rime. All of the Geos art that's ever appeared o: 
OADSTAR, as well as some great files fro 

eos fanatic Dick Estel, are available on twenty 
55.25 inch disks or eight 3.5 inch disks. Most of thi: 

as never been seen before! Use these graphics 
n your GeoPaint, GeoWrite and GeoPublish 
documents or convert to FGM with FGM ulilities. 
Spiff up your GeoFAX documents with the 
appropriate graphic -- every time! Prices are $20 
lor any two 3.5 inch disks, or any five 5.25 inch’ 
disks. You can purchase the whole collection fo 


1-800-594-3370 or 1-318-221-8718 to order b 
redit card. Or send check or money order and 
ecify (by LG number) which disks you want. 


|_5.25-INCH DISKS 
Disk 01 - RAILS: Railroad art trom Europe 
nd the USA #001205 


Disk 02 - VEHICLES/TAROT: Artwork of old 
and new autos; excellent geoPaint drawings of the, 
arot card set #0013D5 


Disk 03 - CLIP ART: Inciudes converted 
MacPaint files that have never before been 
available in Commodore format #0014D5 


Disk 04 - OTTOWA/PRIME CLIPS: Anwork 
of the main landmarks of Ottowa; plus high qualit 
public domain clip art #0015D5 


Disk 05 - FONTS: More than 30 fonts trom past 
ssues of LOADSTAR, plus articles (in geoWrite 

format) on creating fonts. Also two ready-made 
eaders for use with your own documents, one a 
picture of a mail truck; the other reading FROM 
HE DESK OF #0016D5 


Disk 06, Disk 07, and Disk 08 - geoPaint and 

Photo Album files with the great clip artwork 
eatured on past LOADSTARS - includes 
eoCurmudgeon, Anamalia | and Il, Australian 

Animals, Valentine art and many more #0017D5, 
0018D5, #0019D5 


Disk 09 - GOODYKOONTZ FILES - Jasper 
joodykoontz, born in Indiana in 1855, produced 
oodykoontz’s Perpetual Calendar and General 

Reference Manual (A Book for the Millions). This 

disk includes scans from the book of a wide arra' 

of subjects -- Gestures and Attitudes, Poultry, 
raniology, and more. #0020D5 


Disk 10 - OLD WEST: Scanned Artwork fro 
Dick Estel’s FRO Software - mostly woodcut style 
art of the old west, gold rush days and pioneer 
scenes. #002105 


oftware #0022D5 


Disk 12 - HOLIDAY: Artwork tor New 
ears, Valentine's, St. Patrick's Day, 
Halloween, Thanksgiving and Christmas 

0023D5 


Disk 13 - PEOPLE/FACES: Scenes of people! 
and faces trom FRD Software #0024D5 


Disk 14 - FRD CLASSICS: Dick’s choice of 
he best of the FAD collection #0025D5 


Disk 15 - DINOS/CLASSICS: Dinosaurs and 
other prehistoric beasts, as well as more first 
hoice artwork from FRD, #0026D5 


Disk 16 - SPORTS/MISC: Dozens of sports 
related clips #0027D5 


Disk 17 - OFFICE AND SCHOOL: Clips to 
be used at work and around the house #0028D5 


Disk 18 -MUSIC & MORE SCHOO 
LIPS #0029D5 


Disk 19 - SEASONAL AND HOLIDAYS: A 
lip for any occasion #0030D5 


Disk 20 - SEASONAL AND HOLIDAYS: A 
lip for any occasion #0031D5 


he 3,5" disks are roughly equivalent to two and a 


halt 5.25° disks. 


Disk 1: Equals disks 1, 2, 4B #0009D3 

Disk 2: Equals disks 3, 6, 7A #0010D3 

Disk 3: Equals disks 5, 8, 7B #0011D3 

Disk 4: Equals 9, 10, 11A #0012D3 

Disk 5: Equals 12, 13, 11B #0013D3 

Disk 6: Equivalent of Disks 14, 15and 

isome bonus files not on 5.25" disks #0014D3 

Disk 7: Sports, Office and school, Music 

#015D3 

Disk 8: Music, Holiday and Seasonal 
016D3 

For your convenience, GeoViewer Is 

included on each volume. GEOS 2.0 is 

suggested, 


DisKiulla Gard Gernes! The Compleat Maurice: a compilation of 26 


solitaire card games written by Maurice Jones, the acknowled 
the C-64/128. There’s even a brand new, never before publis! 


d master of card game simulations for 
game called Boomerang. Two 5.25 


inch disks #0007D5 or one 3.5 inch disk #0007D3. $20.00 postage pald! 


Qodles OF Stunning Art! Tutorials! The Compleat Walt: 
Ouring LOADSTAR's first ten years we have published 24 of Walt Harned's slideshows and multimedia 
events, Now we've gathered them into one huge collection: seven 5.25 inch disks or three 3.5 inch 
disks! There are over 250 pictures, including some that have never been published. The greatest one- 
man collection of art on any computer platform, 5.25-inch disks order #070425 3.5-inch disks order 


#070423, $20.00 postage paid! 


Name = 


Address_ 


State 


Postal Code : 


Total Enclosed: _ 


QC) Check/money order made payable to "Loadstar" in US Funds 
QJ American Express 


C) MasterCard ) Visa 
Card # 
Exp Date / 


Authorized signature: = <3 
Subscribers: I prefer 01 5.25-inch diskettes 1 3.5-inch diskettes 
LOADSTAR 
P.O. Box 30008, Shreveport, LA 71130-0008 
Questions: 1-318-221-8718 Fax 1-318-221-8870 


L) Discover 


COMMODORE WORLD 


@ACKTALK 


LET TERS AND QUESTIONS FROM OUR READERS 


Who’s Your PAL? 

After running our first installment of 
“Commodore Demos” (CW#15, pg. 20) a few of 
our readers were left with the nagging question, 
“What do NTSC and PAL mean?” 

NTSC and PAL are video starndards used 
throughout the world, The NTSC video standard 
(named for the National Television System 
Committee) is used in most American countries, 
Japan, Taiwan, Korea, and others. Most of the 
rest of the countries where we commonly see 
Commodore computers in use (UK, Germany, 
Australia and others) have adopted the PAL 
(Phase Alternating-Line standards) system. 

While the actual differnces between these two 
standards is rather technical, what you see on 
your monitoris the effect of several hundred lines 
of video information being written to it. Each of 
these lines is referred to as a “raster scan line”. 
NTSC has 525 lines and is generally operated on 
a frequency of 60 Hz, while PAL has 625 lines and 
usually operates on a 50 Hz source. 

Why is this important? Well, the average 
program on a Commodore could generally care 
less which video standard you're using for display 
purposes; however, specialized programming 
such as that commonly used in demos often uses 
video “raster” timing. The effect of operating 
sucha program ona machine that doesn’t use the 
intended video standard might be anything from 
graphics that are jittery to disk lockups caused by 
custom disk routines. 

Perhaps you're wondering what it is that 
determines whether a specific Commodore 
computer is NTSC or PAL? There are three 
hardware differences: the clock crystal, the VIC 
chip, andajumper located on the circuit board. If 
we get an opportunity, we'll try to present those 
differences and how tochange the computer from 
one standard to the other in a future issue. 


FD/1581 Format Tip 
Maurice Randall, our geoProgrammist columnist, 
recently stumbled onto this ‘gotcha’ anda handy 


COMMODORE WORLD 


work-around tip for users that have both the 
CMD FD Series floppy disk drive, and a 
Commodore 1581. We'lllet Maurice tell the story 
in his own words: 


For all you FD Series owners, here’s my ‘Trick of 
the Month’... 


First, the scenario... 


Okay, you've got an FD drive and you've also 
gota 1581. You use both of them. You've got this 
800K DD disk that you've been using in your FD, 
and it’s been formatted with one native partition 
on it. It’s been working just fine and then you 
decided to reformatit in your 1581. Now, youare 
using it in your 1581 as a 1581 disk, no more 
native partition. It works just fine there as well, 
and you decide to also use this disk in your FD 
once again—but the FD won't read it! But wait... 
The FD is supposed to be able to read 1581 disks, 
right? Not this one. Now, you've used disks 
formatted on the 1581 in the FD before with no 
problems at all, but this one just won't work in 
the FD anymore. But it still works fine in the 
1581. Normally, you'd be more inclined to think 
that the 1581 would have a problem with an FD 
formatted disk, rather than the other way around. 

If you've never seen this obscure problem, try 
it. Format a double-density disk in your FD with 
one native partition on it. Then reformat it in 
your 1581. Your FD will no longer accept it. 

Now for the cure (and you can use either your 
1581 or your FD to fix the disk). The problem 
stems from the fact that this disk still contains a 
system partition. Check it out. Put it in your FD 
and send an @$=P command to it. You will get a 
partition directory and it will still show a native 
partition on it. And that’s why the FD can’t read 
the disk—because it can’t find a valid directory 
header on track one where CMD Native partitions 
normally have them. To fix this disk, you need to 
wipe out the system partition. You can do this 
very easily by sending a command to your drive. 
And yes, the 1581 can be instructed to wipe out 


4 


the system partition without harming any other 
data that you might have on the drive. Just send 
the following command to the drive: 


@ru OB p E> EE" 


Let me explain this closer. Some of those 
characters should come out as reverse characters 
on your screen. The capital ‘F’, each ‘b’, and the j 
should be reverse characters. To get the reverse 
capital F, you press the F3 key. The reverse b is 
obtained by pressing CONTROL-b. And likewise, 
the reverse j is done with CONTROL. Be sure to 
press the '@ key followed bya quote and then the 
rest of the characters. End it with a quote and 
then press return. Your 1581 will promptly trash 
the system partition and the FD will once again 
be able to read this disk. If you perform this on 
your FD, it will also work, but to read it you will 
have to first remove the disk from the drive and 
then reinsertit. The FD will then be able to display 
the directory every time thereafter. 

With JiffyDOS, the above string can be sent to 
the drive. Without JiffyDOS, or if you prefer, you 
can make a basic program and keep it with all 
your other little utilities. The following will do: 


,"u@"chr$ (134) chr 
$(2)+"p"+chr$ (10) +"p"+chr$(2)c 
hrs (2) 


3@ closel5 


Then just save it to a disk as ‘WIPESYS’ or 
something like that. Anytime you need to trash 
the system partition on an 800K disk, just load it 
upandrunit. Inline 10, make sure that the 8’ gets 
changed to whatever device number you have 
your 1581 or FDsetas, depending on which drive 
contains the disk that needs the system partition 
wiped out on. 
Hope someone can get some use out of this 
little tidbit. 
- Maurice 


%) 


Issue 16 


SOFTWARE SUPPORT 


INTERNATIONAL 


ENTERTAINMENT 


Arkanoid 2 $7.97 
Beyond Dark Castle $7.97 
Beyond Zork 128 $12.97 
Demon Stalkers $8.97 
Double Dragon 2 $9.97 
Heavy Metal $12.97 
Heros of the Lance $14.97 
Jeopardy 1-2-Jr $9.97 
Keys to Maramon $9.97 
Mean Streets $9.97 
Ms Pacman $9.97 
Napoleon In Russia $7.97 
Ogre $9.97 


4th & Inches $7.97 
Champshp Baseball $7.97 
Champn Basketball $7.97 


Dave Winfield Batter Up $9.97 


Fast Break $7.97 
Hardball $7.97 
Jack Nicklaus Golf $9.97 
Jordan vs Bird $7.97 
Leaderboard Golf $9.97 
Pro Football Facts $9.97 
Pro Soccer $7.97 
Pure Stat Baseball $9.97 


Sporting News Baseball $9.97 


Star Rank Boxing $7.97 
ACCESS 
C-128 RGB Cable $17.95 
C-64 Color Cable $12.95 
Computer Hand 2 $6.95 
Convert A Com $24.95 
Disk Bank 10/3.5" $2.95 
Disk Bank 10/5.25" $2.95 
Disk Bank 100/3.5" $12.95 
Disk Bank 100/5.25" $12.95 
Disk Bank 70/5.25" $7.95 
Disk Mailers $0.39 
Drive Cleaners $6.95 
Serial Cable 4 or 6ft $8.95 
Drive Power Cable $7.95 
User Port Cable $15.95 
Com Modem Adapter $15.95 


CALL TOLL FREE TODAY! 


August/September 1996 


Pacman $9.97 
Plundered Hearts $12.97 
Portal $14.97 
Powerdrift $7.97 
Questron 2 $9.97 
Rampage $7.97 


Rendevous With Rama $7.97 


Roadwars $7.97 
Sidearms $7.97 
Steel Thunder $9.97 
Strip Poker $14.97 


Trump Castle Casino $12.97 
Wheel Fortune 1-2-3 $9.97 


Tony LaRussa Baseball $7.97 


Tournament Tennis $7.97 
WWF Wrestling $7.97 
Acrojet $9.97 
Apache Strike $7.97 
Blue Angels $7.97 
F-14 Tomcat $9.97 
F-19 Stealth Fighter $12.97 
Flight Sim Games $4.97 
High Roller $7.97 
Jet Combat Sim $7.97 
Skyfox $7.97 
Super Huey | $7.97 
Top Gunner $9.97 
ORIES 
Floppy Disk Notcher $6.95 
Dust Covers - specify $7.95 
Ergostick Joystick $16.95 
CBM 1200 Baud $9.95 
Aprotek 2400 Baud = $49.95 
1351 Smart Mouse $44.95 
Mouse Holder $4.95 
MW 350 Interface $44.95 
64 Power Supplies $34.95 
Printer Ribbons CALL 
Userport Expander $24.95 
3.5" 10 cnt.Floppy $7.95 
5.25" 20 cnt.Floppy $4.95 
Diskette Sleeves (25) $2.00 


Write Protect Tabs(100) $1.00 


We Carry America’s Largest Selection of C-64/C-128 Software! 


PRODUCTIVITY 
1750 Super Clone $99.95 Geos 128 v2 $44.97 
Basic Compiler 64 $12.97 GeoPublish $34.97 
Big Blue Reader $29.97 Graphic Label Wizard $14.97 
B/W Prog Tools $14.97 Graphics Basic $9.97 
B/W Power C $9.97 Home Designer 128 $24.97 
B/W Turbo Cartridge $17.97 Manager, The $12.97 
C128 Graphics Bundle $29.97 Maverick v5 $24.95 
Christmas Model Kit $9.97 Model Diet $9.97 
CSM Protection Man 1 $14.97 Newsroom $14.97 
CSM Protection Man 2 $19.97 On Line Help $9.97 
Data Manager 2 $14.97 Postcards $14.97 
Designer's Pencil $9.97 Printmaster Plus $19.97 
Drive Align 1541/71 $12.97 Superbase 64 or 128 $19.97 
Easy Working Tri Pak $9.97 Swiftcalc w/Sideways $14.97 
Geos 64 v2 $39.97 


EDUCATIONA! 


r . 


Early Learning Friends $9.97 
European Nations & Loc $9.97 


Expeditions $9.97 
Keys to Typing $9.97 
Memory Manor Cart $9.97 
Magic Spells $9.97 


EFURBISTIED 


C-128 Keyboard w/PS $119.95 


1541 Disk Drive $49.95 
1571 Disk Drive $89.95 
1541 Clone Drive $39.95 
40 Col Monitor $99.95 


Snoopy Sky Scramble $9.97 


Stickybear Math $9.97 
Typing Tutor 4 $9.97 
WizType/Wiz Math $7.97 
Word Attack $9.97 
Word Spinner $9.97 


rlARDWARE 


80 Col Monitor 


$139.95 


MPS-803 Printer With Tractor 
Feed & Brand New Ribbon 
Only $49.95 


Items Listed Above Do Not Include Shipping. U.S 48 States - Add $5.50 
per order. Alaska, Hawaii & Canada - add $5.50 for the first piece and 
$1.00 per each additional piece per shipment. Second Day Air shipping 


is available. Call for shipping charges. Call Or Write For Your Free c- 
64/128 Catalog Listing HUNDREDS Of Commodore Products And 
Special Offers For Your Computer. Our Order Takers Are On Duty 6:00 
a.m, - 5:00 p.m. M - F and 7:00 a.m. - 3:00 p.m, Sat. - Pacific Time. 


Softy S I 
SOFTWARE oro N er anbresen Re, 


Se ee Suite D-4 
an Vancouver, Wa 98661 
Cling (360) 695-1393 
E-Mail To: software@pacifier.com 
1-800-35$6-1179 


Major CreditCards Accepted. 


COMMODORE WORLD 


Welcome to another edition of Commodore 
Trivia. As many of you may know, these trivia 
questions and answers have been donated by 
me to the Commodore community at large. 
Unlike other articles in Commodore World, 
these trivia questions have been placed in the 
public domain. I ask only that the trivia 
questions remain intact and unchanged, and 


that my name and address appear somewhere 
so users can contact me. The trivia is also used 
fora contest I run on the Internet; contact me at 
the included address for more information. 
Because curiosity has the best of me, I always 
welcome a note or postcard detailing where the 
trivia goes. I also welcome new questions— 
provided they come with the answers. Enjoy! 


Jim Brain 


Brain Innovations, Inc. 


10710 Bruhn Ave 
Bennington, NE 68007 
j.brain @ieee.org 


COMMODORE TRIVIA #15 QUESTIONS 


Where is the ROM in a 1541 located in the 64K memory map? 

Which VIA on the 1541 is hooked to the read/write head? 

In the Commodore DOS, what bit in the file type byte denotes a 

If files are “locked” under Commodore DOS, under what 

condition(s) may the file be changed? 

How big can a program file be on a 1541 or similar? 

Under BASIC 2.0, how does one open a random access file on a 

A file that has a ‘*’ immediately before the filetype is called a 
file. 


We know the 1541 and similar drives have 5 internal buffer areas, 
but how many does an 8050 drive have? 


$0EO — What is the difference(s) between the Newtronics 1541 and the $OE7 
1541C? (only one difference is needed) 
SOE8 
$0E1 | Whathappens when you type 35072121 in direct mode on the C64 
and hit return? SOE9 
“locked” file? 
$0E2 If a SID chip is producing a “sawtooth waveform”, does the 
waveform look like: SOEA 
a) MM or 
b) NA? SOEB 
$0E3_ On BASIC 2.0, what special precaution(s) must one take when $0EC 
working with relative files? (only one is needed) disk drive? 
$0E4 — Whatincompatibility existed between C128 Rev.0ROMSandthe $0ED 
REU? 
$0E5 Whatcantriggeran NMlinterrupt?(countallsourceson onechip SOEE 
as one) 
$OE6 = What can trigger an IRQinterrupt? (countall sources on one chip —$0EF 


as one) 


On a “save-with-replace”, where is the location of the first track 
and sector of the new copy of the program saved in the directory 
entry for the old copy? 


COMMODORE TRIVIA #14 ANSWERS 


$0D0 The original PET had 73 calculator-style keys that were laid out in Hardware: 
a rectangular matrix, not typewriter-style. Bil Herd 
Dave Haynie 
$0D1 SYS 32800,123,45,6. The screen will clear, and the software and Frank Palaia 


hardware developers on the 128 project will be named. The exact 
text is as follows: 


[RVS] Brought to you by... 
Software: 

Fred Bowen 

Terry Ryan 

Von Ertwine 


COMMODORE WORLD 


$0D2 


[RVS]Link arms, don’t make them. 
The “original” PET came in two configurations, 4K and 8K, so: 
The PET 2001-4 had 3071 bytes. 


The PET 2001-8 had 7167 bytes. 


Issue 16 


$0D3 Sys 64790 


$0D4 I know some of these are correct, but the sheer size of the list 
prevents me from checking them ALL out. 
FAT 40XX series 
80XX series 
PC-10 (I suspect a number of IBM clones did, and these things 
have no consistent naming convention across country 
boundaries.) 
PC-20 
Amiga 1000 
SP9000 (SuperPET) 
$0D5 31743 bytes. 
$0D6 a) 3 sockets. 
b) 2 sockets. 
c) L socket. 
d) 1 socket. 
$0D7 The German version had additional keybaord drivers for umlaut 
characters and dead keys. 
$0D8 None other than the infamous Jim Butterfield. 
$0D9 PRINT is faster, since the sys approach must process the pokes 
before the sys, which are very slow. 
$ODA Inside the top case of the Amiga (1000). There is an interesting $0DF 
footnote to this question. It seems that at least some original 
Amiga machines were labeled as Amiga (with no number). Then, 
at some later point, the number was added. In addition, 
Commodore produced some Amiga 1000 machines without the 
signatures, but most had the telltale handwriting on the inside of 
the case. 
$0DB Assume carry was clear. If so, then $11 is the correct answer. 


ChAD Service Center 


AFFORDABLE ¢ FAST « DEPENDABLE 


Call Today 1-800-638-3263 


Our Team of Technicians are Among the 
Most Qualified in the Industry! 


Why Settle for Anything Less Than the Best? 


We repair the following equipment: Commodore C-64, 64C, SX-64, C-128 
and C128-D computers; 1541, 1541C, 1571 and 1581 Disk Drives plus 
CMD Devices. JiffyDOS Installations a specialty. All repairs warranted for 
30 days. Minimum charge $35.00 plus parts and return shipping. You must 
contact CMD for authorization before sending any equipment. 
Creative Micro Designs, Inc. P.O. Box 646 E, Longmeadow, MA 01028 


August/September 1996 


$ODC _ Its first number was 6567, and that is the number most people 
know it by, but Commodore produced a VIC-II using a new 
manufacturing process that was numbered the 8562. 

$0DD Same here. The part number 6569 is the most remembered 
number, but an 8565 will work as well. 

SODE Note, for the purpose of the calculation [am performing, “pixels” 


refers to picture elements that can be adddress and modified 
using normal VIC modes, so there are 320*200 “pixels” on both 
the PAL and NTSC screens. (I probably should have stated this, 
but it is too late now.) Also, the screen refresh rates used in the 
calculations are those defined by the respective television standards 
(60Hz U.S., 50Hz European), even though the actual frequencies 
are off by asmall percentage. (for example, the actual 50Hz refresh 
rate on European VIC-II chips was calculates as 50.124567Hz by 
Andreas Boose). So, the PAL draws 320*200*50 pixels per second 
= 3200000 pixels/s. NTSC draws 320*200*60 pixels per second = 
3840000 pixles/s . Now, some people thought I meant the whole 
screen, notjust the display area provided by the VIC-II chip. Well, 
lam notsure exactly how you calculate pixels on a screen, since 
the numbers could vary from display to display, but ifwe measure 
in scanlines: 


PAL = 312 scanlines * 50 = 15600 scanliness 
NTSC = 262 scanlines * 60 = 15720 scanliness 


The NTSC machines wins both ways. 
B is the correct answer, and there are a couple of reasons why: 


1) 2- -2 takes longer to parse in the BASIC interpreter, 

2) Commodore BASIC subtracts by complementing the sign of 
thesecondnumberandadding. Thisincurs extra time. There are 
even more subtle ones, but | leave them as an exercise for the 
reader. Send me your reasons why. 


nn 


Specializing in NEW and USED Commodore Hardware, 
Software and Accessories at excellent prices. 


Send $1.00 for a HUGE list of products. Office Hours: 
11:30 - 6:30 MST. Visa, MC, Discover and American Express accepted. 


3366 South 2300 East, Salt Lake City, UT 84109 


COMMODORE WORLD 


COMMODORE AND CoOmpPUTER INDUSTRY NEws 


Genie Sold Again, Launches Genie Interactive on the Internet 

Just as things were beginning to settle back down with Genie (see “CMD 
Captures Genie", CW#15, pg. 9), the announcement came that the service 
has once again changed hands. 

True to the indications we reported last issue, Yovelle Reniassance had 
smoothed over relations with General Electric Information Services, who 
sold the service earlier this year, But only a few short weeks later, it was 
announced that the service had now been sold to IDT, a US-based Internet 
and long distance service provider. IDT has already begun testing of an 
Internet-based version of Genie, called Genie Interactive (http:// 
www.genie.com). The new site will place a heavy emphasis on integrating 
the wide range of multimedia options available to graphical browser users, 
but is also being structured to allow text browser access. IDT hopes to 
utilize the new service to draw users who already have Internet access into 
the Genie fold. Despite the emphasis on the Internet venture, the company 
has also assured Genie sysops that the classic Genie online service remains 
viable, and will continue to operate as it has in the past. 


Loadstar Letter Goes Subscription, Merges with 
Underground 

According to Loadstar’s “Grand Exalted Mojo” Fender Tucker, the Loadstar 
Letter #36 shipped with Loadstar #146 will be the last free issue provided 
to Loadstarites. 

Tucker notes, however, that this doesn’t spell and end forthe Commodore 
newsletter, but rather a new beginning. The all-new subscription-based 
Loadstar letter was slated to begin in August, with an annual subscription 
rate of $12.00 per year for charter subscribers, Subscriptions are available 
by sending a check to LOADSTAR Letter, P.O. Box 30008, Shreveport LA 
71130. 

Loadstar cites rising costs as the reason for the change in policy, adding 
that their LOADSTAR disk publication will remain at its all-time low of 
$69.95 per year. 

On a related note, Scott Eggleston recently announced that he would 
merge his Underground publication with the Loadstar Letter. The following 
notice was to be sent to Underground subscribers: 


Dear Underground Subscriber, 

I must first thank you for having faith in our little publication that 
started over twoyears ago. [hada desire to put outa quality publication 
using Commodore equipment, and for the most part, I think I have 
succeeded, 

lrealize itis always hard to send money toan indpendent magazine, 
as so many have dried up (along with all funds) in the past. I was 
determined that this would never happen to the Underground, that I 
would never leave my customers high and dry, with nothing to show 
for their hard-earned dollars. 


COMMODORE WORLD 


There have been some real changes in my life recently, changes that 
have made me reevalutate my most precious commodity: time. With 
a new job, family demands, and filmmaking dreams, my time for 
writing and publishing has become limited. 

As a result, the Underground will be merging with the Loadstar 
Letter, effective immediately. All remaining subscriptions will be 
fulfilled by the LL, and 1 will be brought aboard as an Associate Editor. 

In my opinion, this is a win-win situation for everyone. Everybody 
continues to get a good publication for their money. | get to keep 
writing about one of my favorite topics, and have time for my other 
pursuits. The Loadstar Letter gets more subscribers. I feel this is a 
good move for everyone involved—nobody loses. 

If you have never heard of this monthly publication, let me bring 
you up to date. Originally the LL was included as a freebie with 
Loadstar’s fine disk publication. Strictly a liability, it was deemed that 
as a subscribed-to newsletter, it could pay for itself. It will be twelve 
full-size pages, which may be down from the Underground's twenty, 
but it will arrive every month, something the Underground could 
never do. Trust me, you'll be getting a lot for your money with the 
Loadstar Letter. 

The Head Editor Honcho Guy isJeffJones, a great writer and equally 
great programmer. I look forward to having my work next to Jeff's, and 
am honored to have been considered for this position. With both ofus 
writing together, you're going to end up with an informative and 
formidable source for Commodore info. 

Youshould expect to see your first issue of the Loadstar Letter about 
the same time as Underground #15 would have shown up. Although, 
tobe honest, it'll probably show up sooner, as I've been abit tardy with 
my issues as of late. 

There are also a couple of other topics I need to address. Back Issues 
of the Underground will still be available from me at $2.50 per issue. 
The Underware disk will obviously no longer be available, but Tom 
Adams [president of Meeting Commodore Users Through the Mail] 
has informed me that he will copy back issues of the disk for as long as 
people will want them, or as long as he is able to do so. 

In closing, let me just say that I have enjoyed producing the 
Underground for you, and was always thrilled to read your letters 
telling me of some useful information that you gleaned from it. | still 
have a lot of good articles in my head, and you'll get to read them all 
(along with Jeff's), in upcoming issues of the Loadstar Letter. 

Iffor any reason you need to contact me, please do so. Thanks again 
for your support... see you outside the mainstream! 


Sincerely, 

Scott Eggleston 

former Editor, the Underground 
Associate Editor, The Loadstar Letter 


Issue 16 


New Commodore Discovery Debuts 

So, what's new in the world of Commodore computing? That's at least a 
part of the focus ofdisC=overy, anew online publication from Mike Gordillo, 
Steven Judd, and Ernest Stokes. From a perusal of the first issue of this 
publication, the apparent spin is to document both old and new technical 
issues and techniques as they apply to the Commodore—though the 
editors have mixed in a couple of articles which could be considered as 
“lighter” reading. For the most part, though, this debut issue appears to be 
very much like Commodore Hacking, for those ofyou who are familiar with 
that long-standing bastion of techno-enthusiasm. 

Included in this first issue are articles on IFLI, TRI-FLI (a new FLI 
graphics scheme under development), the JCH sound editor, VDC timing, 
upgrading the VDC RAM to 64K, C128 CP/M, and more. 

To get the current issue, you'll need Internet Email or World Wide Web 
access. On the Web, point your browser to hitp://vww.eskimo,com/~dray/ 
discovery.html. If you don’t have Web access, send an Email request to the 
Editor-in-Chief at s0621126@dominic.barry.edu. 


Threshold Products Sells Out 

September 20th, 1996—Threshold Productions International is glad to 
announce that the takeover process of our operations by Arkanix Labs is 
finally complete. Arkanix Labs is taking over all day-to-day operations of 
TPI and will fulfill any and all of TPI’s prior obligations. We feel Arkanix 
Labs will be able to better realize the ideals previously set by TPI. Our hopes 
are that Araknix Labs can provide for the customer where we have lacked 
in the past therefore insuring a bright future for the Commodore 64/128 
community. 

Arkanix Labs will be using the Seattle address for all mailings. The 
previous message number for TPI is now defunct. 

Jonathan Mines [formerly of TPI] will continue to provide the Driven 
mail subscriptions. For further information contact Petar Strinic 
(petars@arkanixlabs.com). We have a WWW homepage at http:// 
wivw.arkanixlabs.com. 

[A] Letter from Jonathan Mines follows... 


A dark day for the NTSC Commodore community? No, buta bright 
future isborn. Were I have failed in the past with TPII believe Arkanix 
Labs will do a far superior job. 

First off, anybody with orders will get their packages. There have 
been delays, but I really didn’t forsee this takeover causing this much 
trouble. I'm sorry for the delays, I will be handling all packages myself 
in the next week. 

What happened? Why is TPI gone? I simply couldn't keep my head 
above water much longer the way things were going. TP] just grew up 
too fast, [couldn't handle the load and needed to offload some work. 
I tried it, but the person I hired failed to help. Then an old friend came 
along, someone I've worked alongside before and this deal happened. 

Will I be a part of Arkanix Labs? Right now I’m helping setup 
everything the right way, the way it should have been done with TPI. 
We havea staff now, so things will get done ona proper time schedule. 
My main job with Arkanix Labs will be handling all the financial work, 
something I do daily with my “real job”. Besides that I'll be handling 
the legal end of the company. 

But the best thing about having everything off my shoulders, now | 
can get some programming done! For the last two years I've put 
project after project off because of no time. Finally I get back to what 
I do best on this C64! 


August/September 1996 


Anyway, I have explained everything, I think. Any questions about 
anything can besent to meat the email address which follows. Feel free 
to email anything, | like to chat! 

Jon Mines 

jon.mines@arkanixlabs.com 

tpinfo@eskimo.com 


Performance Peripherals, Inc. (PPI) Bows Out 

CW writer Gaelyne Gasson recently reported that Performance Peripherals, 
Inc., willno longer be servicing the Commodore market. Gasson confirmed 
this in a phone conversation with PPI founder Peter Fiset, who stated that 
the company is moving its focus to other projects. According to Gasson, PPI 
willnolonger provide any support or repairs for their Commodore products, 
and has ceased all manufacturing of these products. The company will 
continue to sell products until present inventories are depleted. 


SuperCPU Update 

Initial reports from users on the compatibility, speed and usability of the 
SuperCPU 64 have been positive. But like any new product of this level of 
complexity, the first production run did find a few machines—specifically 
Commodore 64's utilizing the Revision E board—that were too far out of 
specification to allow for reliable operation. This number was extremely 
small, though, accounting for only six units, with the first of these reported 
by a user in Germany. CMD immediately investigated the situation, and 
halted production until modifications to resolve the problems could be 
developed and implemented. 

What was discovered was that a small percentage of Commodore 64's 
have incorrect relationship between the Dot Clock and the Phase 2 Clock. 
The additional loading factor presented by adding the SuperCPU to these 
machines, often already outfitted with REU’s and/or RAMLink devices, is 
enough to create erratic operation with some of these machines. CMD was 
able to resolve this problem by re-generating a proper Phase 2 Clock locally 
on the SuperCPU. This modification has been incorporated into all new 
production units, and no further reports of these problems have been 
received since. SuperCPU users experiencing erratic operation should 
contact CMD to arrange having their unit upgraded. 

Meanwhile, CMD is continuing to work on the 128 version, the RAM 
expansion card, the developer's package, and several other related projects. 
However, no firm dates have been set at this time for release of these items. 


%) 


=e RR oo FF 
CORRECTIONS 


Issue 15, page 44, correct these lines for THE CHAOS GAME: 


13@ FORI=1024T02023: POKEI,16:NEXT:REM SE 
T COLOR (FOREGROUND*16+BACKGROUND) 

155 Y=199:FOR X=@ TO 319:GOSUB 250:NEXT 
250 B=8192 Y/8)*320+8* INT (X/8)+(Y AN 
D 7):POKEB, PEEK(B)OR M(X AND 7): RETURN 


Issue 15, page 45, correct these lines for FERN CHAOS: 


Sg 


=.5*W:X2=.57*W:X3= 


-408*W:X4=.1075* 
160 Y1=O*W: Y2=-.027*W: Y3=.0669*W:Y4=.2*W 
25@ B=8192+INT(TY/8) *320+8* INT (TX/8) + (TY 
AND 7): POKEB, PEEK(B)OR M(TX AND 7) 

260 PRINT" {CLR/HOME}": POKE53265,27: POKES 


Oe hanes 


COMMODORE WORLD 


Just For Starters 


by Jason Compton 


USEFUL ITEMS FOR THE USER PORT 


Lately, we've tackled an introduction to input 
devices and cartridge port expansion products. 
Now it’s time to turn our focus to the cartridge 
port's neighbor down the road, the user port. It’s 
not the high-profile slot, to be sure. Nobody ever 
puta game on the user port, all of the accelerators 
live in the cartridge port, and even the multi-port 
expanders aren't as clever for the user portas they 
are for the cartridge port. Nevertheless, you can 
do a lot of clever things with a C-64 user port. 

Fora time, the user port was arguably the best 
way to expand a C-64 or 128. In recent years, the 
superior R&D has been done on cartridge port 
peripherals, but there is still a wealth of good use 
you can get out of your user port. 


Modems 


Perhaps the most obvious, and certainly one of 


the earliest, user port expansions, there are a 
number of modems out there which will plug 
directly into the C-64’s user port. Commodore, 
anda number of other companies produced 300, 
1200, and 2400 baud modems to get 64 users into 
the world of BBS's and online services. By today’s 
standards, these modems will be slow and 
outdated, but ina pinch they may come in handy. 


RS-232 (Serial) Interfaces 

As time progressed in the computer industry, a 
numberof products, including modems andsome 
printers, strongly adopted the PC industry 
standard RS-232 serial port, found on PC clones 
and Amigas. It began to make much more sense 
for companies to build only one RS-232 version 
of their product, rather than catering to the 64's 
specific user port and serial bus. Not to be shut 
out, 64 developers found a way to add an RS-232 


COMMODORE WORLD 


interface to the user port. Available both 
commercially (the Aprotek COM-MODEM and 
the Omnitronix Deluxe RS-232 Interface, among 
others) and as a project outlined in Commodore 


World #4, RS-232 interfaces open up a variety of 


new hardware for the 64. 

Keepin mind, however, that serial printers are 
not as common as parallel printers (we'll get to 
that in just a bit) and the user port—RS-232 
interfaces are generally limited to 2400 baud 
communication. Still, by the time 2400 baud 
modems were affordable there were hardly any 
companies willing to build them specifically for 
the 64 (Aprotek is the only one that comes to 
mind). With 2400 baud modems nearly worthless 
in most people’s eyes and the RS-232 kit clocking 
in well under $25, you could turn a 64 into an 
exceptionally low-cost text terminal for about 
$30 if you shop well. 

You'll also get the ability to use null modems, 
which were never constructed for the 64 user port 
specifically. Null modems are devices that allow 
you to hook up two machines directly to one 


10 


another via the serial port and transfer files and 
datajustas one wouldifcallinga BBS witha “real” 
modem. Without getting into more expensive 
adapters that allow you to hook upa Commodore 
drive to a different computer, this is often the 
cheapest way to get data from a 64 into another 
type of machine. Ifyou're looking for higher rates 
ofspeed, you've put yourselfin SwiftLink territory 
and will need the cartridge-based expansion. 

In theory, a standard external MIDI interface 
device could be plugged into such an RS-232 
port, but I have yet to see any software that would 
support a serial MIDI box. 


Centronics Parallel (Printer) 
Interfaces 
Early in the game, printer manufacturers were 
more than happy to build 64-specific models of 
their products. But not many of these were 
particularly good—many suffered from not 
having true “descenders”, or letters such as “g” 
which would drop below other letters. But when 
users craved for more, they would often find that 
there was simply not a 64-specific printer for 
their needs. Are you surprised that someone, in 
fact several someones, found a solution? 
AgreatnumberofC-64 parallel interfaces have 
emerged on the market. The parallel port 
standard was established on the PC and is more 
or less fully supported by Amiga computers. 
(Maes, of course, have their own unique serial 
bus and no parallel bus.) For a time, the most 
popular of the parallel interfaces was the Xetec 
Super Graphix and Super Graphix Jr. These 
devices put the parallel printers on the 64's serial 
(disk) bus, and they also had to draw power from 
the 64's cassette port—not convenient if you, for 


Issue 16 


example, have a dongle currently residing there, 
or are using a Datasette as a digitizer. 

Enter the CMD geoCable II. It truly keeps the 
“parallel” in “parallel bus” and takes the printers 
away from the contested disk bus. The device is 
remarkably straightforward. It consists exactly 
of a circuit board, connectors at each end—one 
female user port connector to plug into the 64 
and another male user port connector to plug 
other user port devices into for pass-through 
purposes, a 25-pin parallel port connector that 
faces sideways, and a large switch. That's all. 

What it does, simply and elegantly, is turn 
your user port intoa parallel port, allowing youto 
plugin thestandard $3 cable that parallel printers 
use and be up and running in no time, with or 
without the specific GEOS drivers included. The 
switch disables the parallel port and enables the 
other user-port device currently plugged into the 
pass-through connector. 


EPROM Burning 

For hardware hackers, EPROMs are wonderful 
tools. AnumberofEPROM burners are available 
for the 64, but many of them are cartridge port 
devices. Datel manufactured the EPROMMER 
64 to fit in the user port so as to avoid conflicts 
with other devices you mightwantto keep resident 


Paxtron| 


CORPORATION 


in your cartridge port. Not for the faint of heart, 
but ifyou know your way around programmable 
chips, here’s your device. 


Voice Synthesis 

While some were mightily impressed with the 
SAM speech synthesis available for the 64 that 
used only the built-in SID chip, others wanted to 
do more. The Jameco Voice Synthesizer was 
actually an external box that connected to the 64 
via custom cable, with included software to drive 
the unit. Just another example of what you can do 


with a 64 if you put your mind and a little bit of 


effort into it. 

Currah Technologies built the Voice 
Messenger, a device that just keeps popping up. 
Its principle is roughly the same—it generates 
speech from internal circuitry and speakers. The 
heart of the unit is the EZ Speech software, 


Video Digitization 

Now we're talking. The big talk in the industry 
is multimedia, and all the Microsoft ads like to 
show you how much fun and productivity you 
can have when you put video on your 
computer. 64 peripherals did it a long time 
ago. Devices known as Computereyes and 
Video Byte allow you to “framegrab”, or 


digitize single video images from a standard 
source. While they can’t go so far as to offer 
you the sort of accuracy available on more 
expensive equipment, such as capturing a 
single frame in real-time, they can “slow-scan” 
images, such as an unmoving object or person 
in front of a camera (or a rock-solid pause, as 
found on laser dises and very, very good VCRs). 
Since these were built in the day before 
widespread support ofsome of the more clever 
64 graphics modes was available, you'll be 
looking at greyscale or colorized output given 
the 64’s standard 16-color set restrictions. But 
for greyscale images in particular, a good grab 
is plenty good to get the point across. 

These devices will save their pictures into 
standard 64 file formats such as Koala. A real 
coup would be a new driver—perhaps a GoDot 
module—that could harness the greater color 
depthavailable to clever programmers and exploit 
thatfromascanner suchas these, or other devices. 

Surely, this is not the final word on user port 
expansion, but it is a broad sampling of the sorts 
ofclever expansions thatare floating out there for 
the 64. Keep your eyes open—you never know 
when you'll have an opportunity to own your 
very own video digitizing station. 


Upgrade Chips 


6510, 6526, 6567,6569, 6581, 6522, 
8502, 8562, 8500, 8563, 8564, 8721, 
8722, 325302, 390059, 251968 .. $8.95 
901225, 901226, 901227, 906114PLA...$6.95 
251715, 251913, 8580,WD1772 .. $10.95 
314972-03 (C128 ROM Upgrade) .. $24.95 


Motherboards 
AGATE (PROMI) sissiacaisscescicccectes $14.95 
154111 (NEW) uy 
bd (NEW) .. 


6 64 (untested, as is, all chips) . $17: 95 
C-128 (NEW) 
C-128-D (NEW)... 


Diagnostics & Manuals 
Commodore Diagnostician; Guide to 
diagnose & fix C64/128/1541 .... $6.95 
C128 Diagnostic Cartridge 
and manual 5 
Manuals: MPS 802 & 1230, 1084, 1902, 
1581, 1526, 1571, 801, C64, C128 .. Call 
We are now receiving manuals for all 
Commodore products from SMG Call 


i iv 


1541) (Refurb:) csicisceisescscccccsssasese $44.50 
154111 w/ P.S, (NEW)... .--. $69.95 
157.1 (RRORUFD.), srerercccccssnsescsrsrersers $89.50 


Paxtron 


CORPORATION 


August/September 1996 


28 Grove Street 
Spring Valley, NY 10977 


Miscellaneous 


C-64 Keyboard 

1351 Commodore Mouse 

Monitor Cables 

Used Monitors (Low Prices) 

1541/1571 Alignment Kit 

1230 CBM Printer 

1084S Motherboard w/ Flyback $79.95 
1084S Power Supply Board (Refurb.) $29.95 
C-64 Cabinet (Top/Bottom) $12.95 
Commodore Joystick ..... : 

256 x 1 (41256) 

1541 Serial Cable 

Video Cable 

Verbatim 5.25 SS/DD Disks(10 Pak) . $1.99 
Amiga A500 (Rev.3) NEW Motherboard 
with all Chips 


Pe 


(All Power Supplies are NEW) 


C-64 non-repairable 

C-64 repairable 

C-64 Heavy Duty (5.2 amps) i 
C-128 Heavy Duty (5.2 Amps) .. $39.95 
5.2 amps for Ram Expander Units $39.95 
154111 external 110 volts 

1581 external 110 volts ... 

1084S Flyback (Phillips) .. 

1084-D1 Flyback 

1084 Flyback (Daewoo) 

Str54041 for 1802C Monitor 


ORDERS 800-595-5534 * 800-815-3241 »* 888-PAXTRON 
Info 914-578-6522 * FAX 914-624-3239 


11 


‘CORPORATION | 


* A500 Computer: Includes Power Supply and latest chips (eg: 

Agnus, 2.04 O/S). Plus choice of following: Starter Kit, Discovery 
Kit (incl. Kind Words, Deluxe Paint Il) or Deluxe Kit $149.95 
CD32 MorHersoarp: Contains all chips(Lisa, Alice, Paula, 
68020-16, ADV101) except the 512K memories 
With all memory 
Commopore C65 Motnersoaro: Contains all RAM operating at 
3.5 MHz speed. Includes all chips (tested) 
1084S Mortnersoaro with FiyBack TRANSFORMER: This new CBM 
board will cure 90% of 1084S problems. Simply switch the PCB and 
your monitor problems are solved! This motherboard with factory 
mounted flyback, is the exact replacement and works with all 1084S 
monitors. It is also very easy to install $79.95 
Commopore 1976 Scientiric Catcutator: Save a piece of the 
past. Brand new with charger and manual 
C64 Emercency Diacnostic/Repair Kir: Each kit contains: 6526 
CIA, fuse, 6581 SID, 6510 CPU, 906114 PLA, 6567 VIC, 901225 
BASIC ROM, 901226 Character ROM and Commodore 
Diagnostician ($70 Value) 
C128/128-D Emercency Diacnostic/Repair Kir: Eachkitcontains: 
6526 CIA, 8563/8564 80/40 column CRT Controllers, 390059-01 
Character ROM, 8721 PLA, 8722 MMU, 6581 SID and Commodore 
Diagnostician ($70 Value) $49.95 
C64/128 Unity Cartrioce: 30 programming functions on one 
plug-in cartridge 


Hours: 9AM-5 PM EST We gladly accept: 


Add $6.00 for UPS Charges Psa C=-] ss, 


COMMODORE WORLD 


Graphic Interpretation 


While rereading the user’s manual of Creative 
Micro Designs’ “Perfect Print LQ for GEOS,” a 
statement in the introduction stood out to me: 
“geoWriteis the most used application in GEOS.” 
This holds quite true for myself—I used it daily 
(and nightly) through college, and still use it to 
create articles, calligraphy, resumes and 
newsletters. Over the years numerous 
programmers have invented different 
applications, drivers and desk accessories that 
can boost geoWrite’s capabilities, and some of 
these may have never received much publicity 
following QuantumLink’s demise in 1994. Thus 
it seemed appropriate to make this the focus of 
this issue’s geoSphere article. In this two-part 
series, we will look at some tools and techniques 
that can help make this great application work 
even better for you! 

For this series’ first part, we will look at 
improving input: text, fonts, directories and 
formatting. In the second part, printer output 
and quality will be discussed. 

Let's begin at. the beginning, before even 
entering geoWrite. Do you have a mouse 
configured as yourinput driver? Andifso, has the 
uselessness of the right button ever made you 
think, “wouldn't it be nice if only it worked?” 
Good news—Andrew Milesk created an input 
driver called simply “Doubleclicker” (version 2.0, 
dated 2/4/90), It is a very effective alternative to 
the 1351/1351(a) COM mouse driver. When 
selected, it does what the name says: it double- 
clicks with a single press of the right button, This 
saves on wear and tear for the left button, and not 
to sound like a George Reeves “Superman” 
episode, but... you are able to leap into 
applications with a single click... it’s a file, it’s a 
driver, it's DOUBLE-CLICK! I myselfhave grown 


COMMODORE WORLD 


by Paw Sullivan 


GEOWRITE DONE RIGHT 


so accustomed to it that I look for that function 


when using the computer at my workplace, and 
that ultramodern IBM doesn't doit! You'll find it 
a simple but handy feature to have. 

Allright, now you enter geoWrite, and realize 
that the font you need is tenth on the disk... nuts! 
Yet another shortcoming of geoWrite is the 
limited eight font accessibility. Now you have to 
exit your file and do the usual font-switch tango... 
or do you? Not if you get Payton W. Snider's 
Fontswap 1.0, which I mentioned briefly lastissue. 
Notto insult anyone's intelligence, but again, the 
name says it all. This desk accessory is perfect for 
disks with large numbers of fonts and a user 
whose font choices vary with each new file. The 
first nine fonts on the disk are listed. If there are 
many more, they can be scrolled through one ata 
time, or page by page. You may toggle any seven, 
and when ready, select the melodramatic “DO 
IT!" icon. And it'll do it. 

Now, let's hypothesize. You are a third-year 
college student and have over several dozen 
geoWritefilesin your archives. The particular file 


12 


you want is lost somewhere on a disk with a very 
large directory. But you need to find it quick! Let 
Nate Fiedler’s 2k shareware jewel “FindFile” 
(version 1.0, 8/1/91) look forit! First ofall, thisis 
a desk accessory, so it can be used within any 
application including geoWrite. Then it has a 
very adept search function—enter the filename, 
press RETURN, and it will list its deskTop 
notepad’s page number and file location number 
(1-6). Did you forget the file’s name? No 
problem—the search function also uses wildcard 
characters suchas the asterisk and question mark 
to help with your search. For example, if you 
enter “history *,” FindFile will list up to the first 
nine files beginning with “history,” be it “history 
American” to “history Zanzibarian” or even 
“history: Zzzzzzz.” And with its “drive” option, 
drives A, B, C (and D if you can configure it) can 
beaccessed. Each time you press the drive button, 
FindFile opens the next consecutive drive 
available. Once you have this desk accessory, 
you'll be able to sing, “it’s a small disk after all...” 
Large directories can be very intimidating, and 
even with such helpful tools as FindFile, it IS nice 
to have files neatly arranged on disk. 
Dir(ectory)Master version 1.0, by Kent L. 
Smotherman, is a powerful 4K application that 
can quickly arrange files in the order that you 
desire. What is most remarkable about this gem 
is its flexibility. The files can be categorically 
arranged by alphabet, reverse alphabet, size, type 
or date. What's more, you can toggle (select) all 
files ona disk, orjusta few. The directory appears 
vertically, and so all files can be easily seen and 
selected. This means that even boot disks can be 
neatened up—just remember to deselect the boot 
files (they are rendered inoperative if they are 
moved from their first positions on a disk.) 


Issue 16 


Through the years I have increased my font 
library—some new onesI'd purchased from GEOS 
FontPaksor others downloaded from Q-Linkjoined 
older ones, But the occasion came when I needed a 
very unique font—one for a “history of English 
language” class. The font was named “LP.A.” for 
the International Phonetic Alphabet. It was done 


on Jim Collette’s Font Editor 2.2 (10/8/88), and if 


you ever need to modify or create fonts, this is an 
excellent tool to do it with. Months before my new 
font was needed I'd received this application, not 
knowing its capabilities. Once the program is 
entered, you may either create a new font or adapt 
one on the current drive. It enables the user to edit 
thedesired font by displaying oneletter afteranother 
on a large pixel map. Point/click to select a pixel, 
and repeat to deselect. All modifications made to 
the letter appear WYSIWYG on the left side of the 
screen, You can therefore see how each letter will 
appear with each pixel you add or remove, and 
modify it accordingly. 

It should be mentioned also that the Font 
Utilities that come with Creative Micro Designs’ 
“Perfect Print LQ for GEOS” carry out a similar 
function in that new fonts can be created. 
Additionally the LQ fonts that result from those 
utilities are then usable with the high resolution 
Print System, which we will look at next issue. 


Text file archives build up quickly over time, 
and you will eventually need to browse through 
some old writing samples. Sure enough, you 
will find an old file that will pique your 
curiosity, and upon opening it, it will upgrade 
from 1.3 to 2.1. Then you notice it is in the 
BSW font... and you'll wonder, WHICH font 
was it originally in? Here is where Dennis N. 
Seitz’s “Identifont 3.2” (2/7/89) can assist you. 
Once selected, this application examines the 
text file or even the disk of your choice and 


determines the font(s) present. In the case of 


an unrecognizable font, a “hex.” and “dec.” 
number will be given. 

Once your new file is done, your text is entered 
and you want to be sure that you met the essay 
requirements. Raymond A. Kerby’s Copy Editor 
1.0 (5/5/89) will do the job admirably. This 
application can run through a multi-page 
geoWrite document in seconds and gives the 
following data: total number of words in the 
document, total number of sentences and long 
words, average words per sentences, and a 
reader's index (approximate reading level). Itisa 
fast and easy way of getting a quality check on 
finished writing. 

Now, you have completed your text, with all 
the needed fonts identified, swapped, 


modified and or created. Itis the proper length, 
and Copy Editor gives youa good review. Now 
I would like to direct you to Rick Krantz’s 
Toolkit 1.2 (12/20/88) which is a file 
formatting wonder-worker. You know those 
LOOOOOONG documents that need every 
page to get a new font, different margins... 
takes some time without good help, doesn’t 
it? Toolkit can perform entire document 
formatting at the touch of a button. Select 
“edit” mode, and the chosen file will be put 
into 40-column mode. “Print” puts the file 
into 80 column mode, and nicely adds 
paragraph indentations and one-inch margins 
ateach “return.” “Combine” can join two Write 
files together for more convenient printing, 
and “all fonts” will put the document into the 
font that is stored in the existing text scrap. 
These and other features make the Toolkit a 
must-have, and makes the finishing touch very 
quick indeed! 

Voila! Your geoWrite file is now printer ready, 
and in less time than usual. Now for the next 
step—output improvement. In the next edition 
of geoSphere, we will look at some fonts, printer 
drivers and applications that will make even a 
nine pin dot matrix put out first rate material! 


%) 


AMIGA 


Repairs ¢ Upgrades ¢ Sales 
e Sell ¢ Trade Amiga Hardware 


64 USERS SPECIALS 128 USERS 
5.25 SS/DD RECYCLED FLOPPY DISKS $49 CASE 
5.25 DS/DD RECYCLED FLOPPY DISKS $59 CASE 
CASE IS 1000 DISKS « ADD $11 S&H PER CASE 
1200 BPS MODEMS 10/329 + $6 S&H 
Integrated Teknologies Inc 


1101 Chestnut St * Suite A ¢ Roselle * NJ 07203 


FON 908 245-1313 FAX 908 245-9409 
Hours Mon & Fri 1 - 6 PM Wed 1 - 8 PM 


TECH STAR COMPUTER CENTER 
(206) 251-9040 


We'll repair your Commodore. 
Seruing the Commodore community dince 1984. 


REFURBISHED SPECIALS 


1541......$69.00 
1541 II...$79.00 
1571......$89.00 

$CALL 


C64 & 1541 $120.00 
64C & 1541 II....140.00 
C128 & 1571 

128D 


$79.00 
$89.00 
$59.00 


M R 
1701 $119.00 
1702 $119.00 
1802 $119.00 
1080 $159.00 
1084 $159.00 
1084S $159.00 
CMONO...$ 29.00 
MONO......8 59.00 


1525 

1526 

SG10 

Star 15X 

MPS 803 

DPS 1101....$99.00 OKI 10 
OKI 20 $79.00 


$59.00 
$69.00 
$79.00 
$89.00 
$99.00 
$69.00 


Don’t forget to notify 
COMMODORE WORLD! 


Please call or write with your change of 
address 6 to 8 weeks prior to your move so 
that you won't miss a single issue! 

CW Adaress Change, P.O. Box 646, 

E. Longmeadow, MA 01028 
413-525-0023 


MISC. 
Power supplies, cables, ribbons, paper, disks, cartridges, programs 
new and used, books, magazines, accessories. 


August/September 1996 13 COMMODORE WORLD 


by Sherry Preedline 


In the time since our first installment, I've found 
a few items to share with you. The most exciting 
itemis the 4k Demo Contest sponsored by Driven 
magazine. This recent competition closed on July 
1, 1996. Each entry was limited to one file of no 
more than $1000 bytes (4K), must be executable 
with the BASIC RUN command and, and had to 
be NTSC C-64 compatible. The prize was simply 
that of knowing your demo won the contest. 
Witha contest of this nature the creators have the 
fun of participating in the contest, while the demo 
fans gain valuable additions to their demo 
collections, Competitions such as this help keep 
the scene alive. 

Secondly, [stumbled across another magazine 
during one of my surfing expeditions. The 
magazine was produced by FOE (Forces of Evil) 
and is known as Coder’s World. Three issues 
have been released, and the magazine is done in 
the style ofa demo—similar to Driven magazine 
but with a different focus. Coder’s World was 
introduced to the demo scene to provide the 
Commodore Community with a valuable 
reference guide for creating demos. [have enjoyed 
viewing demos for many years and the thought of 
learning how to create my own demo has crossed 
my mind many times—Coder's World provides 
folks such as myself with the tools to get started, 

The most recentrelease of Coder's World, issue 
3, contains articles demonstrating how to code 
1x2 scrolls, character animation, playing music 
behind BASIC, logo swings, sprite scrolls, text 
fades, and more. Additionally, they've included 
an article on how to add class to your demos as 
well as revealing a few of their own machine 
language tips and tricks. Issue 3 also contains 
example programs demonstrating each of the 
routines explored within the issue. 

I think Coder's World was long overdue, anda 
very welcome addition to the demo scene. | 
applaud FOE (made up of The Phantom and 
Wrong Way) for their efforts and support. 
However, a word of warning is necessary due to 
the presence of some profanity in each issue of 
Coder’s World, But, aside from that, it’s a 
worthwhile read. Currently, FOE is working on 


an all new magazine called Solutions, Thanks 
FOE! 

One more item I'd like to relay before moving 
along to the reviewsis that of the explosion of demo 
sites on the Internet. | remember last year looking 
high and low in order to find “active” FTP 
Commodore demo sites. Ifyou haven't been on the 


net lately, you'll be surprised at the number of 


places now available to satisfy all those demo urges. 
Almost every Commodore Demo group now has 
their own web page. From these web pages you can 
learn the history of the group, download their 
demos, and even view screen shots straight from 
their demos. The best feature ofall is the creativity 
of their pages. Of course this can’t yet be seen with 
a Commodore 64, We've always known these 
groups were creative, but now we get to see a whole 
new side of their creativity! Located elsewhere in 
this article you'll finda sidebar listing demo groups 
possessing their own web pages. So, while you're 
waiting forthat next demotobereleased, takesome 
time to check out their sites. You'll be amazed at 
what you'll find! 

Now it’s finally time to move ahead to a few 
reviews. This issue’s classic demos are Trap and 
Max Headroom. This issue’s new soon-to-be 
classic demos are Digital Magic and Dawnfall. 


Trap Tony Crowthers and Ben 


Daglish Driven 
The1986demo,Trap,isademo _ Electron 
of many names. You may also ce 
know it as the Space Movie or apg 
the Drummer Boy. The demo Style 


opens with a view of what looks 
like a native preparing to play a 
drum. In the upper right hand 


Bonzai 
corner is a movie screen where —_ Camelot 
themajorityofthedemo'saction —_ Chalice 
takes place. Loin Shao 

1 entarer tlimnabive’ Equinoxe 
map ec scarey, f yenativein Extend 
the lower right hand corner Fairlight 
begins to play hisdrumandthe —_ Light 
movie begins. As the demo scan 
moves along, you're treated toa padua 
visit fromanastronaut(ofcourse Triad 


he's beamed down from his spaceship), a 
holographic style flashing face, and visits from 
other spaceships. 

The whole demo lasts for more than eight 
minutes! All this comes from an amazingly small 
file of 43 blocks! At the end of the demo's movie 
are scrolling credits just like what you'd see at the 
real theater. 

The demo's music reminds one of the movie 
2001, creating an appropriate atmosphere for 
the space movie. Trap is a classic because it 
demonstrates all that can be done with the 
Commodore 64 andit does itwell. Andremember, 
this was still very early in the Commodore Demo 


NTSC Demo Group Web Pages 


http://soho.ios.com/~coolhnd 
http//soho.ios.com/~coolhnd/tron.htm 
http:/Awww.cl.ais.net/wrongway/ 
http://hack.lakeheadu.ca/~revenge/ 
http://www. earthcom,.net/~pegasus/rpg/ 


http//test.dev-com.com/~interconnection/Style 
Waveform/Millenium 


http://marie.az.com/~waveform 


PAL Demo Group Web Pages 


http://chrom.imbg.ku.dk/sshbin/bonzai, htm! 
http:/www.diku.dk/students/slammer/ 
http:/www.nada.kth.se/~d95-she/chalice 
http://www. inf.bme.hu/~mre/ 
http://rphet physik.uni-regensburg.de/~pem03049/eqx 
http:/Avww.lut.fi/~pora/extend/ 
http://www.ludd.luth.se/~watchman/fairlight/ 


httpy/www.hh.se/stud/d94fa/lightlight.htm! 


http://login.nord.eunet.no/~scroll/msp.htm 
http://www-und,ida.liu.se/~q95henra/ 
http://www.obh.snafu.de/~poing/padua/ 


http:/www.df.Ith.se/~triad/Triad_Home.html 


era. Trap was definitely a demo well ahead of its 
time. Even back then folks knew the Commodore 
64 would be capable of more than we could have 
ever dreamed, 


Max Headroom Brian Stephenson 
Next on my list of classics is the 1986 Max 
Headroom demo. 

This demo is only partially famous because of 
Max Headroom. The main reason I've added it to 
my collection is because of the fantastic art work 
contained within this demo. The demo features 
no music, just a screen sized picture of Max 
opening and closing his mouth, But, the graphics 
are so well done that you may forget you are 
looking at a Commodore 64 screen. 

After this demo was released, there were a few 
more Max Headroom demos appearing on the 
scene, Most memorable of them is the Max 
Headroom Swings demo in which smaller 
renditions of Max are accompanied by music. 

Hmmm... I wonder if Max knows he’s a 
Commodore Classic? 


Dawnfall by OXYRON 

Dawnfall is an extraordinary demo production 
resulting from the Party 95 demo competition, 
Throughout the entire demo one can’t help but 


Wh 


N\\ 
\\" 


\\ 


a 
ZZ 


notice the professional quality in which it is 
presented. The demo is contained solely within 
one file and moves along without any required 
interaction from the viewer. 


August/September 1996 


Dawnfall’s introductory screen reveals the 
letters of “Dawnfall” tumbling down upon an 
eclipse bearing a triangular Oxyron symbol. The 
letters then explode off into oblivion and the 
screen fades into the next portion of the 
introduction. Next the video type presentation 
zoomsinand out onascrolling Oxyron landscape. 
While you're busy marveling over the display, 
eerie music will hold you in suspense leading you 
to wonder what's in store for you next. 

Naturally, now it’s time for the opening demo 
credits. | loved the manner in which they are 
presented. The screen flashes and the names 
appear in large letters on your display until all the 
personsinvolved have been introduced. It’s pretty 
hard to explain, but believe me, when you see it, 
you'll realize that it definitely adds to the overall 
professional quality of Dawnfall. 

Now the fun begins as you are treated to a 
variety of three dimensional texture mapping 
routines. Included are a rotating chess board, a 
green, yellow and blue lattice design, a 3-D 
rotating upscroller and a few other items. The 
3—D effects and the texture mapping are 
stunning! You'll easily forget that the graphics 
are displayed on a flat screen. 

After the routines have decided they've truly 
astonished you, the music comes to a dead stop 
and the word “End” is flashed onto the screen. 
The music starts up again and, as in any normal 
video production, the end credits, thank you's 
and greetings roll up your screen. Behind the 
credits a plotter is hard at work holding your 
attention by designing a variety of shapes. 

The demo ends with a teaser enticing you to 
find hidden pictures within the demo. To date I 
have found two of them. But, I've been told there 
are a total of three hidden pictures. The pictures 
are accessed by pressing a key or a combination 
of keys at the beginning, middle, and end of the 
demo, Unfortunately, Graham of Oxyron has 
asked me not to reveal the secrets. Are the secrets 
worth pursuing? Definitely! 

Kudos to Oxyron, Jeff and Biz Kid of Camelot, 
and Sire of Lego for providing the Commodore 
Demoscenewithsuchahigh quality presentation— 
I hope we see more from them soon! 


Digital Magic hy FOF 

FOE has really started 1996 off with a bang. 
Besides the above-mentioned Coder’s World 
magazines, they have released three very 
impressive demos: S.E.T. (Smoke Exploration 


Tool), CAT (Copper Analysis Thingy), and, of 


course, Digital Magic. Each of these demos are so 
impressive that I had a very tough time selecting 
which one to review, And, just because I've 
selected Digital Magic, it doesn’t mean the other 


15 


twoaren't worthy of your time. Ifyou fail to check 
them out, you'll be missing some very valuable 
additions to your collection! 

Digital Magic is what the demo world calls a 
“mega-demo”. It contains nine whole screens of 
graphics and music for you to enjoy! I'm going to 
highlight two of my favorites. 

My first favorite display is on Digital Magic's 
fourth screen. FOE treats us to a page featuring 
eight sinus’ waving through the screen. These 
sines place a total of 8,192 items on the screen! 
The colors are black and blue and leave the viewer 
in a nice relaxed state of mind. Of course, the 
whole mega-demo features outstanding music in 
addition to the cool graphic routines. 

My other favorite screen is on page six of the 
demo. This page is known as Subliminal Colors. 
Here thecreators, The Phantomand Wrong Way, 
have embedded the FOE logo into two animated 
color displays—one each the bottom and top 
halves of the screen, At first they may be hard to 
see. But keep looking because they are definitely 
there. It’s a really cool effect that I haven't seen 
used in the past. 

Toreach each page of Digital Magic, you must 
press the space bar. What's unique about Digital 
Magic is that, first of all, the title page appears 
again each time you load a new page. Secondly, 
Digital Magic appears to be never ending due to 
the fact that once you've reached the final page it 
starts the demo over again. 

Asfaras the other screens go, I'll leave them for 
you toexplore. Because, afterall, part of the fun of 
demos are the surprises contained within! 


In Conclusion... 

Before wrapping up this issue, I'd like to thank 
the members of FOE and Oxyron for taking the 
time to answer all my many questions while 
researching their respective demos. Also, I'd like 
to announce that all the demos reviewed here in 
Commodore World Magazine can be found on 
my web page: hittp://Avww.lm.com/~ql/. 

That's it for this issue! See you next time! 


» 


COMMODORE WORLD 


Commodore 64 


When you first start to learn about computers, 
it’s only natural to compare how a computer 
“thinks” with how people do. As you learn more, 
you tend to stop making such comparisons 
because you come to realize that far from the 
literal, dumb servants they're often pictured as in 
movies, computers are completely different from 
people both in how they operate and the kinds of 
problems they can solve. 

Butit’s still fascinating to compare a computer 
to a human brain. Researchers are beginning to 
discover principles which may explain how the 
brain works, and while much of this research is 
extremely complicated and requires 
large,expensive computers, your Commodore 64 
can be programmed in BASIC to mimic one 
fundamental part of brain function, pattern 
recognition, In doing this, your computer is not 
only doing something the brain does (and your 
reaction may be “I didn’t know a computer could 
do that!”), it’s doing it the brain's way—by 
simulating the neurons (brain cells) with which 
you think. 


Computer Storage and Human Memory 
First, let’s compare what the word “memory” 
means in a computer as opposed to a human 
being. A computer memory is really a huge 
collection of pigeonholes into which numbers 
are stuffed. If you want to store something that 


On a 


by John Walher 


isn’tanumber, suchasa piece of text, a picture, or 
a sequence of musical notes, you first have to 
convert it to numbers, then put those numbers 
into the pigeonholes of the computer's memory. 
Machine language programming is just 
translating the instructions for solving a problem 
into numbers the computer can remember. A 
computer stores numbers. 

Human memory is richer and much more 
complicated, What comes to mind when you 
look at the picture in Figure 1? Even though this 
picture is nothing more than 63 straight black 
lines on a white piece of paper, your brain 
immediately recognizes it as a sleeping cat. You 


can even imagine how a real cat would look if 


seen from other angles. The human brain seems 
to store and recall patterns. These patterns don't 
have to be pictures. You can recall pieces of music 


from only a few notes of the melody, think of 


words that rhyme with “frog” or that end with 
“ple”, and quickly name the American presidents 
that have the same names as automobiles. 

It isn’t that human memory is better or worse 
than computer memory, but rather that they are 
entirely different things. Some computer 
scientists prefer the term “storage” to “memory” 
because it more accurately describes what the 
computer does. Ifyou walk up to a computer and 
ask it “what is the name of the famous bridge in 
the same state as Disneyland” you won't have 


Neural 
Network 


much success, but most people will immediately 
answer, “The Golden Gate Bridge”. On the other 
hand, if you try to memorize a list of 20,000 two 
digit numbers, you probably won't succeed, yet a 
Commodore 64 can do this in less than a second 
and not make a single mistake. That computer 
and human memory are so different isn’t all that 
surprising when you consider how differently 
constructed are the brain and a computer. 


What Brains Are Made Of 

The portion of the brain believed responsible 
for thought and memory consists primarily of 
nerve cells, or neurons. Each neuron has three 
parts, dendrites, a cell body, and an axon. The 
dendrites connect to the axons of other neurons. 
When these other neurons are stimulated, the 
dendrites convey the signal to the cell body via a 
synapse or connection, which either excites or 
inhibits the neuron (with a different strength for 
each synapse). When the excitation sufficiently 
outweighs inhibition, the neuron “fires”. This 
sends a signal down its axon which in turn excites 
or inhibits other neurons, and perhaps causes a 
muscle to move. 

Because neurons primarily connect to other 
neurons they form networks of great complexity. 
Figure 3 shows two fields of five neurons each, in 
which each neuron connects to every neuron in 
the other field. In this simple case we have 10 


neurons with 5 connections (or synapses) each, 
fora total of 50 synapses. Now consider the brain. 
Researchers believe that the brain contains 
between ten anda hundred billion neurons, each 
of which connects to anywhere from a thousand 
to a hundred thousand other neurons, forming 
atleast ten trillion connections, and probably far 
more, Compare this to the read-write memory of 
the Commodore 64, which is made up of about a 
quarter million transistors, and remember that 
each transistor is only aswitch—far simpler than 
a neuron, 


The Brain Simulator 

Ten billion neurons, ten trillion connections: 
does it make sense to talk about simulating the 
brain on a computer? Can we make a computer 
recognize patterns the way a brain does? 
Remarkably, we can. A simple program can 
simulate the behavior of a network of 
interconnected neurons. You can show this 
program patterns and it will remember them. 
Then if you show it a similar pattern, it will find 
the pattern it has learned that is most like the 
pattern itis being shown. The technical name for 
thisisan “associative memory”, so called because 
itrecallsitems based on similarity, like the brain, 
as opposed to location, like a computer. 

The Brain Simulator is written in BASIC for the 
64 and 128 (in 64 mode). When you've finished 
typing in the program, save a copy to tape or 
disk. To run the program, simply load it and type 
RUN. You'll see two blank windows on_ the 
screen. Below them is a legend that explains the 
action of the function keys. When you type a 
letter or number, the dot pattern for that symbol 
appears in the left window. Try typing a few 
letters and numbers to see how this works. When 
you start the program, it doesn’t know any 
patterns—so we'll teach it some. To learn a 
pattern, place it in the left window by pressing 
the key forthe letter ornumberandthen press F1. 
The program trains its simulated neurons to 
memorize the pattern (this takes about 30 
seconds). READY reappears on the screen when 
the pattern has been learned. Go ahead and teach 
the program three different-looking letters, “A”, 
“T”,and “Z”, 

Now let’s try recalling a pattern. Press the “A” 
key to place an A in the left window. Now press 
F3—this introduces errors in the pattern by 
randomly changing about 10% of the dots in the 
pattern each time you pressit. After you press F3, 
you'll havea pattern that looks something like an 
A, but doesn’t exactly match what we taught the 
program. Press FS to start the recall process. The 
pattern is run back and forth through the neuron 
network until it stabilizes on a fixed pattern (an 


August/September 1996 


Figure 1 


arrow in the middle of the screen shows the 
direction of the transfer). After the neuron 
network has “thought” about the problem for a 
few cycles, you'll probably get back the original A 
we taught the program (just like the brain, this 
process doesn’talways remember the right thing; 
if the random changes made the pattern more 
like another pattern the program has learned, 
that one will be found instead). 

Try entering T and Z, creating errors in them 
by pressing F3 one or two times, and recalling 
with F5, Note how the neuron network almost 
always recalls the correct pattern even though 
you've given it something quite different from 
what it learned. Enter “I” and try recalling with 
FS. The network recognizes this as T because I 
looks more like T than A or Z, the other patterns 
it has learned. This is what your brain does when 
it sees a pattern of lines and immediately thinks 
of a sleeping cat. Many researchers think the 
basic process the brain uses is much the same as 
the one used by this program, 

You can make the program forget everything 
it has learned by pressing F4. Ifyou press F'6, the 
program exits to BASIC. When you leave the 
program everything it has learned is forgotten, 
but you can save learned patterns on the disk by 
pressing F7 and entering a file name. The next 
time you run the program you can reload the 
program's memory by pressing F8 and entering 
the same file name. 


Figure 2 


A Neuron 


Dendrites 


17 


How it Works 
The remarkable thing about this program is that 
it doesn’t “know” it’s recognizing letters and 
numbers. As far as the program is concerned, it 
could be learning phrases of music, combinations 
of medical symptoms, or pictures of animals. 
The program simulates two fields of neurons 
with the arrays F1% and F2%, and displays these 
fields in the two windows on the screen. When 
you type a letter or number, the dot pattern for 
that symbol is read from the character ROM and 
stored in F1%. Lighted dots are stored as 1 and 
background dots as -1. The character patterns 


Figure 3 


Field 1 


Field 2 


are 6 dots wide by 7 dots high, so F1% and F2% 
both hold 42 numbers. 

Each neuron ina field potentially connects to 
every neuron in the other field. Each connection, 
which is equivalent to a synapse in the brain, 
has, its own weight: positive to excite, negative to 
inhibit, and zero if there is no connection. These 
weights are stored in the 42x42 matrix M%, fora 
total of 1,764 connections. To learna pattern, we 
form a matrix from the pattern in F1% and add it 
to the weight matrix M% (see lines 1020-1060 in 
the program). To recall a pattern we take the 
pattern in F1% and multiply it by the weight 
matrix (lines 1410-1480). Ifthe value is 1 ormore, 
we place a 1 in that position of F2%; if it’s 
negative, we store a -1 there. If the value is zero, 
we leave the value in F2% alone. Then we take the 


COMMODORE WORLD 


value in F2% and multiply it back through the 
matrix, but swapping rows and columns, and 
store it back into F1% (lines 1540-1610). We keep 
this up until the pattern in F1% stops changing. 
That's our final value, the pattern we've recalled 
from the network. 


Limits of Learning 

The number of different patterns a neuron 
network can learn is determined by the number 
of neurons and connections. This very small 
network can learn only 2 or 3 distinct patterns 
before it begins to get confused. Ifyou try to teach 
it 4 or 5 patterns, it will often recall the wrong 
pattern, or even a spurious pattern you never 
taughtit. That’s where the enormous complexity 
of the brain comes in; your brain has at least five 
billion times as many connections as this little 


13 rem screen configuration 


2@ poke 53280,@ 

3@ poke 53281,0 

4@ print "{CLEAR/HOME} 

5@ open 15,8,15 

6 rem variable 

70 dim 

80 dim v%,j,i 

90 rem initialise 

10@ print 

11@ print 

ciative memory" 

l print 
print 
print 


screen 
"{CLEAR/HOME}" 


"{HOME} {1 


"fl - teach 


Ph Ph 


to 


dump 


forget 
recall 


x 
4 

7 ee 
Do 
p 


Ulm WwW 


PA Ph 


rin 


D print 
200 print 
210 print 
22% print 
23 print "“é @-9: 
240 rl = 4 a: 
250 rl = 4s el = 25 
26% gosub 75@ 

270 gosub 860 
280 gosub 970: . 


quit" 
disc 
disc 


290 get é 4 if soe goto 


AOA 1h Ar in 1d 
300 g > J/Osprinct {10 


310 } 


320 if ="@"anda$<="9"thenk 


® 


330 if $ < A S > *% 
"fetch 


34® gosub 97@:print 
35@ 1%=@ 

360 k=(k-64) *8+53248 
37@ poke56333,127:poke 
380 
390 poke “Epes or 
49@ for ‘s = A to 6 
410 k (494@08+i)/2 
420 5 


COMMODORE WORLD 


Geclarations 


£1%(42),£2%(42) ,m%(42,42) 


"{4 SPACES)neuron network asso 


CRSR DN}"; 
pattern(5 


matrix" 
randomize pattern "; 
all’ 


pattern{4 


save({9 
loadg" 


load pattern" 


gosub 600 
gosub 600 
ready { 


eCDarDpe)\ a 
SPACES } 


2" then 


1,peek(1)and251 
fori=@to6:poke49408+i,peek (k+i): 
4:poke 


program, so your ability to learn and remember 
is correspondingly greater. 

But like a singing dog, it’s not how well it sings 
but the factit sings at all. With less than 250 lines 
of BASIC, we can make the Commodore 64 play 
the brain’s game, pattern recognition, the brain’s 
way, by simulating a neuron network, It can 
learn simply by being shown patterns and recall 
a similar pattern when shown something it’s 
never seen before. Research into neuron networks 
isoneofthemost exciting and rapidly expanding 
fields in science today, bringing together 
computer science, psychology, mathematics, and 
biology to discover how the brain accomplishes 
the remarkable things it does. This research may 
lead to computers that can recognize faces, 
understand speech, and answer complicated 
questions. But more importantly, we may find 


430 
440 
450 
460 
470 next 
480 
490 
500 
510 
520 
530 
540 
550 
560 
570 
580 
590 
600 
610 
620 
6 3@ 
640 
6 50 
660 
670 
680 
690 
700 
71@ poke 
720 poke 
4 SPACES 2 730 r 
2990 74@O ret 
750 

760 

77 

780 
79 
BOO 


SPACES)" 


Pho rh rh Ph Ph Ph Ph et 


SPACES} 


fox 
SPACES}"; 
next 


=k+64:got 


50@ 
"sas 


poke 
next 
next 


next 


$6333,129 


gosub 
rem dispatch 
J $= -asc(a$)-132 
VE R=] 
3%=5 
j{%=2 
j}%=6 
j%=3 
j%=7 
j$=4 
j%=8 
to chat 


poke = Vv, east 


answers to questions as old as mankind: “What 
is thought?”, “What is memory?”, and “How do 
people reason?”. That your home computer can 
help you understand and experiment with such 
matters is testimony to the power latent within it. 


For Further Information 

This article only scratches the surface of the topic 
of neuron networks and associative memory. If 
you're interested in learning more, the following 
article and book are a good way to start: 


Kosko, B., “Constructing an Associative 
Memory”. Byte, September 1987. 

Rumelhart, A.,and McClelland, J., eds., Parallel 
Distributed Processing (two volumes), MIT 
Press, 1986. 

©) 


goto 280 
function key commands 


75@ : gosub 860 


then 
then 
then 
then 
then 
then 
then 
then 


199%: goto 

1080: goto 
121@:goto 
168@:goto 

L29@: goto z 
"">;closel5:end 
L8@@:goto I9@ 
199@:goto 90 


gosub 
gosub 
gosub 
gosub 
gosub 
print 
gosub 
gosub 


-1+(i*8))+cl 
-3*i) 
=l to 8 


poke ‘ve, 67 

| 

poke v+9,11@+(15*i) 
next i 

for w=. to 7 
V=1024+4@* (r1+i)+cl 
v,93 

v+9,93 


1024+40* (1+5) +6 
452 
elerti 
1% (1%) =1lthenpokevt+ (8-3) ,81 


to 7 


:gotos 


vt+(8-j),32 


return 


rem update 


1%=0 


18 


field £1% on 


screen 


Issue 16 


for i= @to 6 next 3 
V$=1024+40* (1+5) +26 vt=sgn(v%) 

for j=2 to 7 ) Lfv%<>@andv$<>£1% (i) thenf1%(i)=v%:c 
1%$=1%4+1 

if £2%(1%)=1 then poke v%+(8-j),81:9 next j 
940 20 gosub 75@ 
poke v%+(8-j) ,32 3@ if c%<>@ goto 1380 
next j 1 poke p%,asc(" ") 
next i poke p%+l,asc(" ") 
return ] poke p%+2,asc(" ") 
rem position to status area 7@ return 
print “({HOME}{22 CRSR DN}"; ) rem forget all - clear memory 
return 5 gosub 97@:print “forget” 
rem train on pattern in f1% 710®@ for i=l to 42 

gosub 97@:print "training" £1%(i)=0 

for i = 1 tod? 20 £2%(1i)=0 

Lox. 7 =ol itord2 5 for j=l. te 42 

ms (i,j) =m%(i,j)+£1%(i)*£1% (5) m%(i,j)=@ 

next j next j 

next i 76@ next i 

return 7®@ gosub 750 

rem print part of matrix gosub 860 

print "{CLEAR/HOME}"; return 

for i=l to 24 rem save state to disc file 
for j=1 to 39 dD gosub 97@:print “save” 
ifm%(i,j)<@thenprint "";:gotol114@ print "{CLEAR/HOME}"; 
prink ©"; input "file name: ";a$ 
print chr$(asc("@")+abs (m%(i,j3))); D aS="@QO:"+aS+",5,w" 

next j 5@ open 5,8,5,a$ 

print 9M for i=1 to 42:print#5, £1%(1i) :next 
next i ‘ gosub 2240 

print “press any key to continue:"; for i=1 to 42:print#5,f2%(i):next 
get a$ : if aS="" goto 1190 gosub 2240 

return for i=1 to 42 

rem randomise 10 percent of f1% for j=1 to 42 

gosub 970:print "random" 29 print#5,m%$(i,j) 

For i=1 ito: 42 3@ next j 

if rnd(@) > @.1 then 1260 gosub 2240 

£1%(i)=-£1%(i) 1 next i 

next i close 5 

gosub 75@ print wees 

return return 

rem recall from pattern rem restore state from disc file 
gosub 97@:print "recall" gosub 97@:print "restore" 
pt=1024+40*9+19 210 print "“{CLEAR/HOME}"; 

rem initially copy fl to £2 202 input "file name: "“;a$ 
poke p%+l,asc("=") aS="@O:"+a$+",s,r" 

for i=l to: 42 2 p%=asc ("m") 

£2%(i)=£1%(i) 2 gosub 2246 

next i 206% open 5,8,5,a$ 

gosub 860 7@ for i=l to 42 

rem fl to £2 pass input#5,£1%(i) 

poke p%,asc("=") next i 

poke p%+2,asc(">") gosub 2240 

for j=1 to 42 2 dD for i=l to 42 

vt=O 2120 input#5,£2%(i) 

for’ i=1 to42 2 next i 

VB=VB+E£E1% (i) *ms (i,j) 214@ gosub 2240 

next i 2 for L=1. te: 42 

v%=sgn (v%) for j=l to 42 

if v%<>@ then £2%(j)=v% input #5,mS(i,j) 

next j 2 next j 

gosub 860 19® gosub 2246 

rem £2 to fl pass 2200 next i 

ct=0 22 close 5 

poke p%,asc("<") 2220 return 

poke p%+2,asc("=") 223® rem disc error check 

for i=l to 42 224® input#15,en,em$,et,es 
vt=0 2250 if en>@then print en,em$,et,es:stop 
for’ j=1 \to.42 2260 return 

vS=vb+£2% (5) *m% (i,j) 


August/September 1996 19 COMMODORE WORLD 


fter programming in 6502 machine language for over a decade, | 

was getting a bit BORED. One can only code the same routines with 

the same opcodes so many times before the nausea of repetition 
becomes overpowering. When I heard the news that CMD was building a 
cartridge based on a 20 MHz 65816 I was overjoyed. For years I've heard 
those with 65816 based systems brag about its capabilities. To us old 6502 
programmers, the opportunity to program the fabled 65816 is a new lease 
on life. 

The 65816 is an 8-/16-bit register selectable upgrade to the 6502 series 
processor. With 24 bit addressing of up to 16 Megabytes of RAM, the 
powerful 65816 is a logical upgrade that leaves 6502 programmers feeling 
right at home. It is amazing how fast one can adapt to the new processor. 
It sounds funny to say it, but the only difficulty I have had learning the 
65816 is that there are so many options and choices to complete the same 
task, that it is hard to decide which method is best. 

To get started programming the 65816, I would recommend purchasing 
the book, “Programming the 65816” from The Western Design Center, 
manufacturer of the 65816. While it is a bit pricey, the sheer quality and 
content of the 600 page book is worth the money. Rarely, ifever, has there 
been a CPU manual as thorough and detailed as the Western Design book. 
Ifyou know 6502 assembly, then Programming the 65816 is probably the 
only 65816 book you will ever need. 


Getting a Feel for the Modes 

The 65816 may be operated in Native mode or 6502 Emulation mode. 
Emulation modeisa 100% 6502 compatible mode where the whole processor 
looks and feels like a vintage 6502. Native mode offers 8- or 16-bit user 
registers and full access to 24-bit addressing. 

While in emulation mode, not only are all the 6502 opcodes present in 
their virgin form, but the new 65816 instructions are also available for 
usage. In fact, the first lesson to learn about programming the 65816 is that 
emulation mode is much more powerful than a stock 6502. The only true 
difference between emulation modeand our venerable C64’s 65 10 processor 
is that unimplemented opcodes will not produce the results expected on 
the former. Since all 256 of the potential opcodes are now implemented on 
the 65816, older C64 software that uses previously unimplemented opcodes 
will produce erratic results. 

To select between emulation and native modes, a new phantom hidden 
emulation bit (E) was added to the status register. Shown in programming 
models hanging on top of the Carry bit, the emulation bit is only accessible 
by one instruction. The new instruction (XCE) exchanges the status of the 
Carry bit and Emulation bit. To move to emulation mode, set the carry and 
issue an XCE instruction, To move to native mode, clear the carry and issue 
the XCE instruction. 


My, How Your Index Registers Have Grown! 

While in native mode there are two new directly accessible bits present 
in the status register. The 65816 implements new hardware interrupt 
vectors which include a new hardware BRK vector in ROM; therefore, 
the old BRK bit of the status register is no longer needed. The BRK bit 
is replaced with the X bit to select either 8- or 16-bit index registers, 
The former empty bit 5 is now filled with the M bit to specify the 
accumulator and memory access as 8- or 16-bit. 


August/September 1996 


21 


Two new instructions are used to clear or set bits within the status 
register. The SEP instruction sets bits, and REP clears bits. SEP and REP use 
aone byte immediate addressing mode operand to specify which bits are to 
be set or cleared. For example, to set the X bit for 8 bit user registers: 


SEP #%00010000 ; set bit 4 for 8-bit index 
; registers. 
Or to clear bit 4: 
REP #%00010000 ; clear bit 4 for 16-bit index 


; registers. 


When in 8 bit mode, the index registers perform their function in 
standard 6502 form. When status bit X is set to 0, both the X and Y index 
registers become 16 bits wide. With a 16-bit index register you can now 
reach out to a full 64K with the various indexed addressing modes. An 
absolute load to an index register in 16-bit mode will retrieve 2 bytes of 
memory—the one at the effective address and the one at the effective 
address plus one. Simple things like INX or DEY work on a full 16 bits, 
which means you no longer have to specify a memory location for various 
counters, and loops based on index counters can now be coded in a more 
efficient manner. 

The formerly empty status register bit 5 is now referred to as bit M. Mis 
used to specify an 8- or 16-bit wide accumulator and memory accesses. 
When in 8 bit mode, (M=1), the high order 8 bits are still accessible by 
exchanging the low and high bytes with a XBA instruction—itis like having 
twoaccumulators! I lowever; when set fora full 16-bit wide accumulator, all 
math and accumulator oriented logical instructions operate on all 16 bits! 
Ifyou add up the clock cycles and bytes required to perform a standard two 
byte addition, you can start to see the true power of 16-bit registers. 


More Register Improvements 
Zero Page has now been renamed to Direct Page—corporate thinking, go 
figure. A new processor register D was added to allow Direct Page to be 
moved anywhere within the first 64K of memory. The direct page register 
is 16 bits wide, so you can now specify the start of direct page at any byte. 
Several old instructions now include direct page addressing as well. To 
move direct page, just push the new value onto the stack (16 bits) and then 
PLD to pull it into the direct page register. You may also transfer the value 
from the 16-bit accumulator to the direct page register with the TCD 
instruction, Direct page may also be moved while in emulation mode. 

While in native mode, the stack pointer is a full 16 bits wide, which 
means the stack is no longer limited to just 256 bytes. It can be moved 
anywhere within the first 64K of memory (although while in emulation 
mode, the stack is located at page one). There are several new addressing 
modes that can use the stack pointer as a quasi-index register to access 
memory. Numerous new push and pullinstructions allow youto manipulate 
thestack. A few ofthe more useful stack instructions useful to programmers, 
are the new instructions to push & pull index registers with PHX/PHY and 
PLX/PLY. 

Two other new processor registers are the Program Bank Register (PBR) 
and the Data Bank Register (DBR). The Program Bank Register can be 


COMMODORE WORLD 


thought ofas extending the program counter out to 24 bits. Although you 
can JSR and JMP to routines located in other RAM banks, individual 
routines on the 65816 still must run within a single bank of 64K—there's 
no automatic rollover from one bank of RAM to the next when executing 
successive instructions. In this sense, it may help to think of the 65816 
processor asa marriage of Commodore's C128 Memory Management Unit 
(MMU) and an ‘enhanced’ 6502—a very similar concept. 

The Data Bank Register is used to reach out to any address within the 16 
megabyte address space of the 65816. When any of the addressing modes 
that specify a 16-bit address are used, the Data Bank byte is appended to the 
instruction address. This allows access to all 16 megabytes without having 
to resort to 24-bit addressing instruction, and helps enable code that can 
operate from any bank. 


New Addressing Modes 


Thereareninenewaddressing modes on the 658 16. Several newinstructions 
are designed to help create relocatable code that can execute at any address. 


65816 Native Mode 


The use of relocatable code on the 6502 was extremely limited. With 16 
megabytes of address space, writing relocatable code increases the overall 
utility of the program. To write relocatable code, several new instructions 
use Program Counter Relative Long addressing. This allows relative 
branching within a64K bank of RAM. There’salso Stack Relative addressing, 
anda push instruction to place the program counter onto the stack, so that 
a code fragment can pull it back off and can instantly know its execution 
address, 

Another new feature are two Block Move instructions, one for forward 
MVP and one for backward MVN. Simply load the 16-bit X register with 
the starting address, the Y index register with the ending address, the 
accumulator with the number of bytes to move, and issue the MVP or MVN 
instructions. MVN is for move negative, and MVP is for move positive, so 
that your moves don’toverwrite themselves. Block Moves use two operand 
bytes: one for the source bank of 64K and one for the destination bank. 
Memory is moved at the rate of seven clock cycles per byte. 

Several new addressing modes are used to access the full address space. 
A 65816 assembler would decode “long” addressing given this input: 


Programming Model 


Processor is in Native (65816) mode when 
Processor Status flag e = 0 


z 0 


16 
Accumulator A is 16-bit when 
Processor Status flag m = 0 ACCUMULATOR MSB (8) ACCUMULATOR LSB (A) 
(8-bit if m = 1) 


DATA BANK REGISTER (DBR) 


Index Registers are 16-bit when XINGES HEGISTER'(X) 


Processor Status flag x = 0 
(8-bit if x = 1) 


PROGRAM BANK REGISTER (PBR) 


Y INDEX REGISTER (Y) 


DIRECT PAGE REGISTER (D) 
STACK POINTER (S) 
PROGRAM COUNTER (PC) 


PROCESSOR STATUS REGISTER (P) 


Native Mode Options 
While in Native Mode, the m flag controls the size 
of Accumulator A and most Memory operations, 
while the x flag controls the size of the X and Y 
Index Registers. This provides 4 different 
configuration possibilities, as charted below, The 
REP and SEP instructions are used in combination 
to switch configurations 


m AJM xy 
16-bit 16-bit 
16-bit = 8-bit 


Instructions 
REP #$30 
REP #$20 
SEP #$10 
REP #$10 
SEP #$20 
SEP #$30 


8-bit 16-bit 


8-bit 8-bit 
It is important to note that the m flag will control 
the size of all operations dealing with memory 
except in operations involving the X and Y Index 
Registers (CPX, CPY, LOX, LDY, STX and STY) 
where the x flag controls the size. 


COMMODORE WORLD 


22 


— Emulation 0 = Native Mode 


Note: To switch to Emulation mode, 
sot carry with SEC, then use XCE to 
exchange the c and @ flags. 


1 = Carry 

1 = Result Zero 

1 = Disabled 

1 = Decimal, 0 = Binary 
1 = 8-bit, 0 = 16-bit 

1 = 8-bit, O = 16-bit 

1 = Overflow 

1 = Negative 


IRQ Disable 

Decimal Mode 

Index Register Select 
Memory/Accumulator Select 
Overflow 

Negative 


Issue 16 


LDA S0445F2 ; load byte from $45F2 of 


; bank 4 


RAM 


LDA 


$03412F,x ; 


; plus x. 


load byte from $412F of 


Quite a few instructions have been given new addressing modes. How 


many times have you wanted to do this: 


LDA ($12) ; load indirect without an 
; offse 
Or how about a table of routine addresses: 
JSR ($1234,x) ; jump to a subroutine via 


; indexed indirect addressing! 


Other fun new instructions: 


TXY,TYX Transfer directly between index registers 
BRA Branch always regardless of status bits 
TSB Test and set any bit of a byte 
TRB Test and reset (clear) any bit of a byte 
INC A/DEC A_ Increment or decrement the accumulator directly 
STZ Store a zero to any byte 
Summing Up 


As you cansee, the 65816 opens up a whole new world of programming— 
it feels like a new lease on life. Of course, it’s going to take some time to 
learn the new processor. But while the 20 MHz speed is a nice perk, | 
believe that the real power of CMD’s new peripheral is indeed the engine 
under its hood: the 65816—a super CPU! 

%) 


65816 Emulation Mode Programming Model 


Processor is in Emulation (6502) mode when 
Processor Status flag e = 1 (power-on default) 


Processor is in Emulation mode 


DATA BANK REGISTER (DBR) 


Accumulator A is 8-bit when { 


Processor is in Emulation mode 


7 0 


X INDEX REGISTER (xX) 
Index Registers are 8-bit when 


Emulation Notes 


While in Emulation Mode, Accumulator Ais forced 
to 8-bit mode. You can, however, access the 
upper 8 bits with instructions that specify 
Accumulator B, and all 16 bits at once with 
instructions that specify Accumulator C, The X 
and Y Index Registers are also forced to 8-bit 
mode, with no means available to access the 
upper 8 bits. To further assist in compatibility, the 
Stack is forced to Page 1 of Bank 0. The Direct 
Page Register (D) is fully functional in this mode, 
allowing direct page to be placed anywhere in 
Bank 0. Likewise, the Program Bank Register 
(PBR) and Data Bank Register (DBR) are also 
fully functional. While it would seem that these 
latter Items would allow programs to operate from 
any bank in Emulation mode, there are some 
caveats; interrupts will force the program bank to 
zero without saving the PBR first, and RTI won't 
attempt to restore the bank. Therefore, Native 
mode would be recommended to execute 
programs in other banks. 


August/September 1996 


23 


Y INDEX REGISTER (Y) 


—— Emulation 1 = Emulation Mode 


Note: To switch to Native mode, clear 
carry with CLC, then use XCE to 
exchange the c and e flags, 


Carry 

Zero 

IRQ Disable 
Decimal Mode 
Break Instruction 


1 = Carry 

1 = Result Zero 

1 = Disabled 

1 = Decimal, 0 = Binary 

1 = Break caused 
Interrupt 

1 = Overflow 

1 = Negative 


Overflow 
Negative 


COMMODORE WORLD 


Guide to 6502/65C02/65816 Instructions 


Assembler Example HEX Addressing Mode 02 C02 816 Bytes Cycles 
ADC Add With Carry [Flags affected: n.v,z,c] 


ADC (dp,X) 61 DP Indexed Indirect,X Vv ¥ 
ADC sr,S Stack Relative / 
ADC dp Direct Page 

ADC [dp] DP Indirect Long 

ADC #const Immediate 

ADC addr Absolute 

ADC long Absolute Long 

ADC (dp), Y DP Indirect Indexed, Y 

ADC (dp) DP Indirect 

ADC (sr,S),Y SR Indirect Indexed, Y 

ADC dp,X DP Indexed,X 

ADC [dp], ¥ OP Indirect Long Indexed, Y 
ADC adary Absolute Indexed, Y 

ADC adar,X 7D Absolute Indexed,X 

ADC long,X 7F Absolute Long Indexed,X 


< 


eu Us es 
3 


2 SO A Gi 


<— 


V 
Vv 


PWOWONMNNNNAWANNMMNMM 


AND (dp,X) 
AND sr,S 
AND dp 
AND [dp] 
AND #const 
AND addr 
AND long 
AND (dp), Y 
AND (dp) 
AND (srS),Y 
AND dp,X 
AND [dp], Y 
AND adar,Y 
AND adar,X 
AND /ong,X 


DP Indexed Indirect,X 
Stack Relative 
Direct Page 
DP Indirect Long 
Immediate 
Absolute 
Absolute Long 
OP Indirect Indexed, Y 
DP Indirect 
SR Indirect Indexed, Y 
OP Indexed,X 
DP Indirect Long Indexed, Y 
39 Absolute Indexed, Y 
3D Absolute Indexed,X 
3F Absolute Long Indexed,X 


PEE POS 


“a. 


a i a a an 


i a a. 


ASL dp 
ASLA 
ASL addr 


06 Direct Page 

OA Accumulator 

OE Absolute 

ASL dp,X 16 DP Indexed,X 
ASL adadr,X 1E Absolute Indexed,X 


BCC Branch if Carry Clear [Flags affected: none] (Alias: BLT] 
BCC nearlabel 90 Program Counter Relative 
BCS Branch if Carry Set [Flags affected: none] (Alias: BGE] 
BCS nearlabel BO Program Counter Relative Vv Vv VY 2 278 


BEQ Branch if Equal (Flags affected: none] 
BEQ nearlabel FO Program Counter Relative VY VY Vv 2 278 
BIT Test Bits [Flags affected: z (immediate mode) n,v,z (non-immediate modes)] 
| y j 


BIT dp 
BIT addr 
BIT dp,X 


VON: (2° 2% 


24 Direct Page 

2C Absolute 

34 DP Indexed,x 

BIT adar,X 3C Absolute Indexed,X 
BIT #const 89 Immediate 


BMI = Branch if Minus [Flags affected: none] 


BMI nearlabel 30 Program CounterRelative ¥Y v¥ Vv 2 278 


BNE Branch if Not Equal (Flags affected: none} 


BNE nearlabel DO Program Counter Relative VN EN Seg ote 
BPL nearlabel 10 Program CounterRelative ¥ ¥ v¥ 2 278 
BRA Branch Always (Flags affected: none] 

BRA nearlabel 80 Program Counter Relative Vv 2 3 
BRK 00 Stack/Interrupt Ree nf Al ne 18878. 


BVC Branch if Overtiow Clear [Flags affected: none] 
BVC nearlabel 50 Program Counter Relative VV Vv Vv 2 278 


BVS Branch if Overflow Set [Flags affected: none] 


BVS nearlabel 70 Program Counter Relative ¥ ¥ YY 2 278 


N 
Vv 


i 


Nv 
V 
Vf 
Vv 


COMMODORE WORLD 


24 


CMP (dp,X) C1 DP Indexed Indirect,X Vv 
CMP sr,S C3 Stack Relative 

CMP dp C5 Direct Page 

CMP [dp] C7 DP Indirect Long 

CMP #const C9 Immediate 

CMP addr CD Absolute 

CMP long CF Absolute Long 

CMP (dp), Y D1 DP Indirect Indexed, Y 

CMP (dp) D2 DP Indirect 

CMP (sr,S),Y D3 SR Indirect Indexed, Y 

CMP dp,X D5 DP Indexed,x 

CMP [dp], Y D7 DP Indirect Long Indexed, Y 

CMP agar,Y D9 Absolute Indexed, Y 

CMP adar,X DD Absolute Indexed,X bette 
CMP long,X DF Absolute Long Indexed,X ; 


COP Co-Processor Enable (Flags atfected: d, i) 
COP const 02 Stack/Interrupt Vi GeReT 
CPX Compare Index Register X with Memory [Flags affected: n,z,c} 
7 ] 


CPX #const EO Immediate 
CPX dp E4 Direct Page Viotny, 
CPX addr EC Absolute V ov 


CPY Compare Index Register Y with Memory [Flags affected: n,z,c] 
j 
v 


CPY #const CO Immediate VV pte are 
CPY dp C4 Direct Page YN Nim 2 5g2to 
CPY addr CC Absolute VY VV v¥ 8 410 


DEC Decrement (Flags affected: n,z] 


DEC A 3A Accumulator Vy 
DEC dp C6 Direct Page 

DEC adar CE Absolute 

DEC dp,X D6 DP Indexed,X 

DEC adar,X DE Absolute Indexed,X VN oN 


1 Vy 


: Vv 
EOR (dp,X) 41 DP Indexed Indirect,Xx vv 
EOR sr,S 43 Stack Relative 
EOR dp 45 Direct Page 
EOR [dp] 47 DP Indirect Long 
EOR #const 49 Immediate 
EOR adar 4D Absolute 
EOR long 4F Absolute Long 
EOR (dp), Y 51 DP Indirect Indexed, Y 
EOR (dp) 52 DP Indirect 
EOR (sr,S),Y 53 SR Indirect Indexed, Y 
EOR dp,X 55 DP Indexed,xX 
EOR [dp], Y 57 DP Indirect Long Indexed, Y 
EOR adary 59 Absolute Indexed, Y 
EOR adar,X 5D Absolute Indexed,X 
EOR /ong,X 5F Absolute Long Indexed,X 


INC Increment (Flags affected: n,z] 


INCA 1A Accumulator 
INC dp E6 Direct Page 

INC addr EE Absolute 

INC dp,X F6 DP Indexed,x 

INC ador,X FE Absolute indexed,X 


a 


FPOWNMNNNNLANNMNNDN 


v 


} 
Vv 


- 


N 
N 


SWWNNNNMNMSOMMMMl 


44 eee 


Issue 16 


Assembler Example HEX Addressing Mode 02 C02 816 Bytes Cycles Assembier Example HEX Addressing Mode 02 C02 816 Bytes Cycles 


PEI Push Effective Indirect Address [Flags affected: none] 

PEI (dp) D4 Stack (DP Indirect) V2 ¢ 
uN pics ue acon vv y : : PER label 62 Stack (PC Relative Long) Vv 3 6 
ey AR RES es veel Pet 
JMP (adar,X) 7C Absolute Indexed Indirect Nov : PHA 48 Stack (Push) 5 ES en es ee 


f 
UME aad DG Absolute Indirect Long 4 PHB Push Data Bank Register (Flags affected: none} 


JSR Jump to Subroutine [Flags affected: none] (Alias: JSL for Absolute Long) 


PHB 8B Stack (Push) Nios S 


JSR addr 20 Absolute ORS De PRR Pa 
JSR long 22 Ab sbibte Long Sek : 4 8 PHD Push Direct Page Register [Flags affected: none] 
JSR (addr,X) FC Absolute Indexed Indirect Vo 3008 PHD OB Stack (Push) Ne A 


LDA Load Accumulator from Memory (Flags affected: n,z} PHK Push Program Bank Register [Flags affected: none] 


LDA (dp,X) A1 DP Indexed Indirect,X VN VN Vv 2 62 PHK 4B Stack (Push) Vie eteets 

LDA srS A3 Stack Relative VY 2 4 

LDA dp A5 Direct Page ¥ V¥ VN 2 39% 

LDA [dp} A7 DP Indirect Long V 2 6 

LDA #const AQ Immediate Vv v¥ Vv 22! 

LDA ador AD Absolute vv v 3 4! 

LDA long AF Absolute Long N° 4.5} 

LDA (dp), Y B1 DP Indirect Indexed, Y VN VvV VN 2 5123 

LDA (dp) B2 DP Indirect VY Vv 2 512 

LDA (sr,8),Y B3 SR Indirect Indexed, Y Nini One 74 

LDA dp,X B5 DP Indexed,X VV VV 2 4'2 

LDA [dp], Y B7 DP Indirect Long Indexed, Y NV 2 6!2 

LDA adar,Y B9 Absolute Indexed, Y y y 3 4i8 PLA 68 Stack (Pull) NNR eat 

13 

EEA RES: ee abeaure Ung mensieecs 2 was 

aE Sees Tn 


PLD Pull Direct Page Register {Flags affected: n,z] 


LDX #const A2 |Immediate Vie NbN 

LDX dp A6 Direct Page v Visi N ee ge PLD 2B Stack (Pull) syctea Wi} 
J t 

ae soy aS areas y y y y : i PLP Pull Processor Status Register (Flags affected: n,z] 

LDX adar,Y BE Absolute Indexed, Y VY Vv v¥ 3 481 PLP 28 Stack (Pull) VEN NE ed: 


LDY #const AO Immediate 

LDY dp A4 Direct Page 

LDY adar AC Absolute 

LDY dp,X B4 DP Indexed,x . PLY 7A Stack (Pull) VIN aa 


LDY addnx BO’ Absolute Indexed, x REP Reset Processor Status Bits [Flags affected: all except b per operand] 
LSR Logical Shift Memory or Accumulator Right (Flags affected: n,z,c] REP #const G2 Immediate Y 2 3 


ben cp an resol nis J y ‘ 1 2 ROL Rotate Memory or Accumulator Left [Flags affected: n,z,c] 
LSR addr 4E Absolute N) ONY AN. GiR'6s ROL dp 26 Direct Page ne ee ; 
LSR dp,X 56 DP Indexed,X Vv v¥ 2 6 ROLA 2A Accumulator 5 a as es 
LSR adar,X 5E Absolute Indexed,X ROL addr 2E Absolute Vy y 3 6 
2 ROL dp,X 36 DP Indexed,X Nini BA 
MVN_ Block Move Negative [Flags affected: none] (Registers: X,Y,C} ROL addr.X 3E Absolute Indexed,X , 
3 
MVN srebk.destbk 54" Block Move . Noro Ea ROR Aotate Memory or Accumulator Right [Flags affected: n,z,c} 
MVP Block Move Positive (Flags affected: none] (Registers: X,Y,C] ROR dp 66 Direct Page 7 
MVN srcbk,destbk 44 BlockMove NGES AI? RORA 6A Accumulator \ 
; ROR addr 6E Absolute ViiN Ne 3.68 
NOP _ No Operation [Flags affected: none] ROR dp,X 76 DP Indexed,X etal Sal’ Pont eas 
NOP EA Implied NN MeN nA 2: ROR adar,X 7E Absolute Indexed,X V vq 
ORA OR Accumulator with Memory (Flags affected: n,z} RTI = Return from Interrupt [Flags affected: all except b] 
ORA (dp,X) 01 DP Indexed Indirect,X Vv Vv , 2 6! RTI 40 Stack (RTI) ALS Sa SUSE 
lati ’ 
BEA ae ee hae Rece that me is a 2 RTL Return from Subroutine Long (Flags affected: none} 
ORA [dp] 07 DP Indirect Long y 2. 6'2 RTL 6B Stack (RTL) SPSS 
i} | 17 1 
SA vila Ae spunea Nae ‘ A ri RTS Return from Subroutine [Flags affected: none] 
ORA /ong OF Absolute Long 2 CASES RTS 60 Stack (RTS) 0 es a PES ST: 
U j 12.3 
cae py i Be joie: Indexed, Y V y y S 2 2 SBC Subtract with Borrow from Accumulator (Flags affected: n,v,z,c] 
ORA (sr,S),¥ 13 SR Indirect Indexed, Y Vie os 7s SBC (dp,X) E1 DP Indexed Indirect,X | 
ORA dp,X 15 DP Indexed,X VY V¥ Vv 2 4% SBC sr,S E3 Stack Relative N 
ORA [ap], Y 17 DP Indirect Long Indexed, Y Vic oanO SBC dp E5 Direct Page NieN ey 
ORA adar,Y 19 Absolute Indexed, Y NEON) Vin 31a 410 SBC [dp} E7 DP Indirect Long : v 
ORA adar,X 1D Absolute Indexed,X Vv Vv 3 48 SBC #const ES Immediate Vv WV 
ORA long,X 1F Absolute Long Indexed,X Ni ge 5! SBC addr ED Absolute Vv 4 3 4t 


SBC long EF Absolute Long 


August/September 1996 25 COMMODORE WORLD 


SBC (dp),Y F1 DP Indirect Indexed, Y VE NGN SQ TAX Transfer Accumulator to Index Register X [Flags affected: n,z] 
SBC (dp) F2 DP Indirect AX AA Implied ATA, 
A 


SBC (sr,S),Y F3 SR Indirect Indexed, Y 

F5 DP Indexed,X 

F7 DP Indirect Long Indexed, Y 
F9 Absolute Indexed, Y 

FD Absolute Indexed,X 


SBC dp,X 

SBC [dp], Y 
SBC adar,Y 
SBC adar,X 


TAY — Transfer Accumulator to Index Register Y (Flags affected: n,z] 
T A8 Implied Ape [ian aa 
TCD Transfer 16-bit Accumulator to Direct Page Register [Flags affected; n,z} 


24242444 


SBC /ong,X FF Absolute Long Indexed,X 


SEC _ Set Carry Flag [Flags affected: c) TCS Transfer 16-bit Accumulator to Stack Pointer (Flags affected: none] 


aT 
YY 
—_ 


Te! 

2 

12 

Cat ae: 


S 38 Implied Vv 2 TCS 1B Implied Vv 
SED Set Decimal Flag [Flags affected: d] — TDC Transfer Direct Page Register to 16-bit Accumulator [Flags affected: n,z] 
5 F8 Implied Nios 2 DC 7B Implied \ 
Vv oN 2 
S 3 
V 


TRB dp 14 Direct Page Vv v2) 5% 


EC i 1 
ED i v 1 
SEI __ Set interrupt Disable Flag (Flags affected: i) TRB Test and Reset Memory Bits Against Accumulator (Flags affected: 2} 
SEI 78 Implied 1 
SEP Set Processor Status Bits [Flags affected: all except b per operand] TRB addr 1C Absolute 2 Nopen' lor foes) 
EP i 2 
V 


STA Store Accumulator to Memory [Flags affected: none] TSB dp 04 Direct Page QI St 


V 
TSB addr OC Absolute A ee Bir 68 


TSC Transfer Stack Pointer to 16-bit Accumulator [Flags affected: n,z] 
TSC 3B Implied 1 
} 


Vv 
J 
Vv 
E2 Immediate V TSB Test and Set Memory Bits Against Accumulator (Flags affected: z] 
v 
{ 


STA (dp,X) 81 
STA sr,S 

STA dp 

STA [dp] 

STA addr 

STA long 

STA (dp), Y 

STA (dp) 

STA (sr,S),Y 

STA dp,X 


DP Indexed Indirect,X 
Stack Relative ot 
Direct Page N 
DP Indirect Long ‘ 
Absolute v 
Absolute Long 

DP Indirect Indexed, Y v 
DP Indirect ; 
SR Indirect Indexed, Y 

DP Indexed, X 

STA [dp], Y DP Indirect Long Indexed, Y 


TXA Transfer Index Register X to Accumulator [Flags affected: n,z] 
STA adadr,Y Absolute Indexed, Y 


2 
TSX = Transfer Stack Pointer to Index Register X (Flags affected: n,z} 

TSX BA Implied 2 
TXA 8A Implied 2 
TXS Transfer Index Register X to Stack Pointer [Flags affected: none] 
STA addr,.X 9D Absolute Indexed, x 3 , = 
2 
2 


Fe a ES Se EE , 
SFOWNNNNNSONNMNND 


V 
2 is aie 
No oN Yv 
TX 9A Implied eS 
STA long,X 9F Absolute Long Indexed,X TXY Transfer Index Register X to Index Register Y (Flags affected: n,z] 
STP Stop Processor (Flags affected: none] TXY 9B Implied Vv 
STP DB Implied TSE TYA Transfer Index Register Y to Accumulator (Flags affected: n,z] 
STX Store Index Register X to Memory [Flags affected: none] TYA 98 Implied Nov Vv 
| y :n, 
8E Absolute j y ; 
96 DP Indexed,Y v TYX BB’ Implied y 2 
WAI Wait for Interrupt [Flags affected: none] 
WAI CB Implied Vv 3's 
WDM Reserved for Future Expansion (Flags affected: none (subject to change)] 
WDM 42 nla N28 n/até 
XBA_ Exchange B and A 8-bit Accumulators (Flags affected: n,z] 
y 
Vv 


86 Direct Page TYX Transfer Index Register Y to Index Register X [Flags affected: n,z] 


84 Direct Page N 
8C Absolute N 
94 DP Indexed,X N 


1 
1 
1 
1 
1 
1 
1 
1 


64 Direct Page 

74 DP Indexed,X 

9C Absolute 

9E Absolute Indexed,X 


XBA EB Implied 3 
XCE Exchange Carry and Emulation Flags (Flags affected: m,b/x,c,e] 
XCE FB Implied Wa 


STZ addr,X 


‘Add 1 cycie if m=0 (16-bit memory/accumulator) 

*Add 1 cycle if low byte of Direct Page Register is non-zero 

“Add 1 cycle if adding index crosses a page boundary 

‘Add 1 cycle if 65C02 and d=1 (65C02 in decimal mode) 

“Add 2 cycles if m=0 (16-bit memory/accumulator) 

®Subtract 1 cycle if 65C02 and no page boundary crossed 

“Add 1 cycle if branch is taken 

®Add 1 cycle if branch taken crosses page boundary on 6502, 
65C02, or 65816’s 6502 emulation mode (e=1) 

°*Add 1 cycle for 65816 native mode (e=0) 

Add 1 cycle if x=0 (16-bit index registers) 

"Add 1 cycle if 65C02 

"°6502: Yields incorrect results if low byte of operand is SFF 
(i.e., operand is $xxFF) 


COMMODORE WORLD 


26 


‘87 cycles per byte moved 

SUses 3 cycles to shut the processor down: additional cycles 
are required by reset to restart it 

"Uses 3 cycles to shut the processor down: additional cycles 
are required by interrupt to restart it 

‘°Byte and cycle counts subject to change in future processors 
which expand WDM into 2-byte opcode portions of instruc- 
tions of varying lengths 

Add 1 byte if m=0 (16-bit memory/accumulator) 

"’Opcode is 1 byte, but program counter value pushed onto 
stack is incremented by 2 allowing for optional signature byte 

"Add 1 byte if x=0 (16-bit index registers) 


Issue 16 


<vV 
<# 
ty 


Leen, 


HEP HEHEHE HEHE Hee eet 
Se te te At Be BE SE SE SE SE TS OTE AE BE tt te tH 


++ 
ts 


+ 
. 
. 
+ 
t 
. 
* 
. 
. 
. 
. 
* 
. 
t 
. 
. 
. 
. 
* 
* 
. 
. 
. 
* 
* 


# 
# 
= 
# 
# 
# 
# 
#t 
a 
# 
# 
# 
# 
# 
# 
# 
# 
# 
# 
ft 
# 
# 
My 
# 
# 
# 
vy 
tt 
# 
# 
a 
# 
# 
# 
# 
v 
a 
# 
a 
v 
v 
# 
MH 
= 


CBM 1660 (300 baud modem) 

Serial Cables 3' 

Midwest Micro 64 Terminal 
S501 

BP Pro Joystick 

CBM Datasette (1530) 

California Games 

C64 Graphics with COMAL 

Commodore 64 Fun & Games 

Commodore 64 Games 

Computer Monsters 

Computer Olympics 

Computer Space Adventures 

Computes 1st Book/C64 

Computes 1st Book/C64 Games 

Computes 2nd Book of C64 

EPYX Programmers Basic Toolkit 

Dictionary of Computer Terms 

GEOS - Inside and Out 

Instant Activities For Your C64 

Jet: 82 New Adventures 

Machine Language For Beginners 

Mapping the Commodore 64 

Micro Adventures #3 Million 

DollarGamble 

Pilgrim in the Micro-World 

Programming the Commodore 64 

Write Your Own (Adv.Graphics 

Haunted House) 

Write Your Own (Synthesizer) 

Alice in Wonderland 

Arcade Game Construction Kit 

Ardok the Barbarian 

Arkanoid 

Arkanoid Il, Revenge of DOH 

Artic Fox 

Awardware 

Bank Street Filer 

Batman 

Batman - The Caped Crusader 

Beyond Castle Wolfenstein 

Bits, Pieces & Clues 

Blood Money 

Bubble Bobble 

Captain Commando Challenge 

Card Sharks 

Cauldron 

Cave of the Word Wizard 

Caveman UGH-lympics 

Championship Golf 

Chernobyl - Nuclear Plant Simul. 

Chomp 

Clowning Around 

Commodore Basic Programming 

Concentration 

Cut Throats 

Double Dragon II - The Revenge 

F-15 Strike Eagle 

Fairlight 

Family Feud 

Fast Tracks 

Feud 

Final Conflict 

Frankie Goes To Hollywood 

Frogger 

Fun House 

Gauntlet 

Ghostbusters 

Grand Prix Circuit 

Guerilla 

Hangman Roulette 

Hardball 

Heartland 


August/September 1996 


DOS Cat € eC Pah © 2 DP evVeehaas H 2 6 8 8 1) Oeawe ew ee 8 8 ee REE ES 8 fe ee wee: & Ce tap © © ee-S TE OnE: @ EE 


n 


strrtrtBeeBeeet— 


RBereeei Pee -<-FBteiSsSBeeiBsBeBTtTBTBTeBeBseBseseseiKeFBTsssesweeiB,ersTtTsrrewseweetsteiisBPee fete Bee 


retrst > 


CMD’* 2nd Annual 


Warehouse Sale 


Surplus Inventory Must Go by October 


i seco 


Helicopter Emergency Rescue 
Operation 

High Roller 

Invaders of the Lost Tomb 
Jeopardy 

Jeopardy (Junior Edition) 
Jingle Disk - Holiday Card Maker 
Jordan vs, Bird 

Jumpman 

Karate Chop 

Ken Uston's Professional Blackjack 
King Cribbage 

Kings of the Beach 

Kung Fu Il, Sticks of Death 
Label Maker 

Lords of Conquest 

Main Frame 

Maniac Mansion 

Math Blaster 

Maxwell Manor 

Mean Streets 

Realm of Impossibility 

Mini Putt 

Monday Night Football 
Monkey Business 

Murder By The Dozen 

Night Mission Pinball 
Operation Wolf 

PHM Pegasus 

Pinball Construction Kit 

Pole Position 

Powerplay Hockey - USA vs. USSR 
Predator 

Presidential Campaign 


Remote Control 
Renegade 

Sargon Il 

Sky Fox 

Snooper Troops Case#2 
Snow Strike 

Speedball 

Stationfall 

Summer Games II 

Super Huey 

Super Password 

Swiss Family Robinson 
Tag Team Wrestling 
Take Down 

The Artist 

The Home Manager 

The Money Manager 
The President Is Missing 
The Sentry 

The Seven Cities of Gold 
The Three Stooges V2 
The Wizard of Oz 

The Writer 

Thud Ridge 

Total Eclipse 

Trilogy 

Typing Tutor III 

War in Middle Earth 
Wheel of Fortune 

Wheel of Fortune 2nd Edition 
Where in the World is Carmen 
Sandiego 

Win, Lose or Draw 2nd Edition 
Word Writer 

Word Writer 3 

World Games 

Zenji 


nrTr TS TPREeBe ttn 


Atlantis 

Congo Bongo 
Gort 

Omega Race 
Pirates Cove 
Practicale 20 
Sargon II Chess 
The Sky !s Falling 
Tutankam 

Master Type 64 (Edu) 
Popeye 

Lazarian 

Omega Race 


Se.0c 


Abacus - Anatomy of the 1541 
Abacus - C128 Basic Training Guide 
Abacus - C128 C.A.D. 

Abacus - Ideas for use on C64 
Abacus - Science & Engineering/64 
Abacus - Tricks and Tips for C-64 
Data Manager 2 

Intro to Basic/ Part! 

Intro to Programming 1 

Music Construction Set 

Navy Seals 

Panorama 

Print Power 

Printed Word & Calc 
Programming Kit #3 

Swift Calc 

Word Writer 4 

Delta Drawing (Edu) 


coe FF SC Ce CEE SC OO EEA AA H— AHA 


<<< tt Ue tH TD 3 te 


Pe ee a a a 


22 


i 


1541 Disk Drive (For Parts Only) 
Amtech (71) w/out PS (Parts Only) 
Epyx Fastload Cart. 
FSD-2 no PS. (For Parts Only) 
M3 Mouse 
Mach 5 Cart. 
Navarone Port Expander 
AcroJet 
Airborn Ranger 
Atomino 
Ballistix 
Blood Money 
Dr.T’s Midi Librarian (4 OP) 
Or.T's Midi Librarian (CZ Rider) 
Or.T's Midi Librarian (OX Heaven) 
Flight Simulator Il Scenery Disk #1 
Flight Simulator Il Scenery Disk #5 
Main Frame 
Menace 
Rings of Medusa 
Rings of Medusa 
Silent Service 
Skate or Die 
Ultima V (disks only) 
8k Ram Cartridge 
15 

1571 Drive Head Assembly 
1700 REU (128K) 
Aprotek Minimodem C (1200) 
Cardco G-wiz 
Datashare 
CadPak 128 
Flight Simulator I! 
Home Designs (Cad for 128) 
Where in the USA is Carmen 

Sandiego 
Partner 64 Cartridge 


COMMODORE WORLD 


30, 1996 


Lecenp 


(6) weed (\) new (@) Printer intertace (0) 64 Printer 
(*) Game (t) Productivity 64 () Productivity 128 
(<) Misc. Hware (1) Drive (%) Centronics Printer 


Cardco G+ 

Xetec Supergraphics, Jr. 
Data Manager 128 
Swift Cale 128 

Sylvia Porter's Personal 
Finance 128 

Word Writer 128 

Blue Chip / Protecto 
Micro R&D MW-350 


Star Gemini 10X 

Votalker (Speech Synthesizer) 
Xetec Super Graphics Jr. 
Accounting Series (Payables) 
Accounting Series (Receivable) 
Accounting Series (Invent. Cntr!) 
Accounting Series (Invoicing) 


CBM 1526 

MPS-801 

MPS-802 

MPS-803 

Seikosha SP-1000VC 

Animation Station & Design Pad 
Voice Messenger w/Easy Speech 
& Intelligent Talking Terminal 


Vizastar 128 (SS,dB, Graphics) 
Vizawrite 128 (WP) 

Amtech RF512C (71 clone)w/ PS 
Enhancer 2000 w/ PS(41 Clone) 
Epson FxX-85 $40.00 
Okimate 10 $40.00 
Okimate 20 $40.00 
Okimate 20 (Centronics) 

Laser 190E (Epson 9 Pin) 
MPS-1000 w/out Tractor 


ESBS As MARCEE 
50 - 5.25" DSDD Disks in 
Storage Case $20.00 

25 - 5.25 DSDD Disks in 
Storage Case $12.00 

1670 modem (1200 baud) $14.00 
FSD-2 Drive (1541) w/ PS $50.00 
MPS-1000 w/ Tractor $55.00 
Okidata 120 $60.00 

1701/1702 Color Monitor $79.00 
Star NX-1000C $75.00 
RAMLink 1MB (Rev.1) $149.00 
CMD HD-100 Hard Drive $239.00 


ING 


Minimum total order $20.00. No product will bo 
held awaiting check/MO, Woe suggest payment 
by major Credit Card (MC/Visa/Disc./Amox) 
Allitems have been tested and are guarranteed 
to work upon delivery. CMD will warranty above 
merchandise for 10 days. Defects may be 
roturned for replacement or merchandise credit 
only with prior authorization, No Retunds, 


Shipping Cont. US only:Printers $10.00; Drives 
$8,50; Monitors $20.00. All other products will 
be shipped based on the shipping chart found 
in our main ad elsewhere in this magazine. 


<V 


A 


AASCACOCOT7A 
a 


HD-170, 170 MB ( pec! lo 
HD-500, 500+ MB (Special Edition) . 
HD-1000, 1 GB (Special Edition) . 
HD-2000, 2 GB (Special Edition) . 


FD-2000 (800K and 1.6 MB) .. 
FD Real-Time-Clock Option/Ki 
Box of 10, High Density Disks (1.6MB) . 
Box of 10, aoe Density Disks (3.2 MB) .. 
; “WiifyDos 

(Specily computer serial number and drive model) 
JittyDOS C64/SX-64 System .. . $39. 
JiffyDOS C-128/128-D System 
Additional Drive ROM's .. 


$14. 
. $29.00 


80-column Monitors (Refurb 
Action-Replay Cartridge 

Aprotok 3-Way User Port Expander 
Aprotek User Port Extension Cable 
C-64 Computer (Refurb, w/JD) . 
C-64C Computer (Refurb, w/JD) 
C-64/64C Power Supply (Repairable) $39.00 
C-64/64C Heavy Duty Power Supply (Repairable) ni 95 
128-D Computer w/ Int. 1571 (Refurb, w/JD) we CAL 
C-128 Computer (Refurb, w/JD) .. 

C-128 Computer (Refurb, w/JD, no PS) 
C-128 Power Supply (Repairable) 
Cannon BJC-4100 Color Bubble Jet Printer 
Commodore 1541 Disk Drives (Refurb, w/JD) 
Commodore 1541-1! Disk Drive (Refurb, w/JD) 
Commodore 1571 Disk Drive (Refurb, w/ JD) 
Commodore 1702 40-column Monitor (Refurb) ....... 
Commodore 1802 40-column Monitor (Refurb) 
CMD EX2+1 3-Port Cartridge Port Expander .. 
CMD EX 3-Port Cartridge Port Expander 
CMD Gamepad/Joystick Controller ... 

CMD GeoCabie II Print Cable 6ft./15ft 

CMD SmartMouse (1351 Compatible Mouse) .. 
CMD SmartTrack (1351 al Trackball) 
Inkwell Light Pen Model 1700 ....... . 
Monitor Cables CALL 
Mouse Pad... » $2.95 
MW-350 Printer Interface (OK/8K Buffer) $49. Oays60. 00 
Panasonic KXP-1150 9- “pin Printer 
Panasonic KXP-2023 24-pin Printe: 
Panasonic KXP-2135 24-pin Color Printer 


. $49.95 
$69.95 
.. $75.00 


JittyMON-64 (ML Monitor) ... 
The Compression Kit ‘94 (M 


Collette Utilities (Handy Geos Utilities) . 
Desk Pack Plus 

Oweoezils Greatest Hits (NewTools2,Stamp,L 
FONTPACK Plus 


g 
geoFile 64/128 
geoMakeBoot (Makos. Bootable copies) 
geoProgrammer 
eoPublish .... 
EOS 64 v2.0 
GEOS 128 v2, 
geoSHELL V2.2 (Cu 
International FONTPACK ......... 
Perfect Print LQ for GEOS (Laser- 
RUN GEOS Companion 
RUN GEOS Power Pak | or II (Specify) 


Anatomy of the 1541... 

C-64 Science & Engineering ... 

C128 Computer Aided Design 

C128 BASIC Training Guide .........c.c00 
Commodore 64 Tricks and Tips ..........000. ; 
GEOS Programmers Reference Guide 
Graphics Book for the C-64 
Hitchhikers Guide to GEOS 

\deas for Use on Your C-64 

Printer Book for the C64 . 

Mapping the C64 . 

Simple Internet 


Handyscenner... 
Pagefox..... 

Video Digitizer 
Videotox 


eee Major Credit Cards Accepted eee 


L Cadpak 64 (Abacus) 


| Laser Squad 


RAMLInk Base Model (OMB, No RAMCard) 
RAMLink w/1 MB RAMCard (Special!) 
RAMLink w/4 MB RAMCard iepecielt) 
RAMCard RTC OptionKit .......00 
RAMLInk Battery Back-up (Optional 
Parallel Cable (RAMLInk to HD) .. 


> Mipr & Sound 
Digimaster 
SID Symphony Stereo Canridge 
Sonus 64 Sequencer, MIDI Interface, Cables . 
Sonus 128 Sequencer, MIDI Interface, Cables ... 


Suages & Compares 


BASIC 64 Compiler (Abacus) ... 
BASIC 128 Compiler (Abacus) . 
Blitz! 64 Compiler (Skyles) . 
Blitz! 128 Compiler (Skyles) .. 
Buddy 64/128 Assembler ... 
Cobol 64 (Abacus) .... 

Fortran 64 (Abacus) 

Pascal 64 (Abacus) .... 

Power C 64 (Spinnaker) . 


Productivity 


Cadpak 128 (Abacus) 
Chartpak 64 (Abacus) 
Chartpak 128 (Abacus) . 
Data Manager 64 (Timeworks) .. 
| Paint v1.5 (128, 80-col., 64K VDC) (Living Proof) . 
| Port v1.54 (128, 80-col,, 64K VDC) (Living pela sis 
Personal Portfolio Manager (Abacus) $ 
Pocket Writer 1 (64) Digital Sol,).. 
Pocket Writer 2 (64/128) (Digital Sol.) . 

Pocket Writer 3 (64 or 128) (Digital Sol 

Pocket Planner 2 or Pocket Filer 2 (Digital Sol.) 
RUN Productivity Pak |, II, or Ill (Specify) 
RUN Super Starter Pak 1541 or 1581 
RUN Works . i 
SEC Check Register 128 . 
SuperScript 64 (Precision) . : 
SuperScript 128 (Precision) .. 
Suberbase 64 Version 3.01 (Precision) .. 
Superbase 128 Version 3.01 (Precision) 
SwiftCale 64 (Timeworks) .. 

TWS 64 w/Speller (Busy Bee) .. 

TWS 128 w/Speller (Busy Bee) 

TWS Modules (HD/RUllustrator) . 


~ Siecommunications 


Aprotek MiniModem C-24 (C= ready, 2400 ti $69 00 
Aprotek MiniModem C (C= ready, 1200 baud) .. .00 
Aprotek Com-Modem Adapter (for ext modem) . 
Aprotek Com-Modem Adapter Cable 
BOCA 2400 w/SwiltLink and Cable . 
BOCA 14,4K bps FaxModem ... 
BOCA 14.4K w/SwiftLink & Cable 
BOCA V.34 28.8K bps FaxModem .. 
BOCA V.34 w/SwiftLink & Cabie .. 


00 Commodore 1670 Modem (1200 bau 


Dialogue 128 
Nova Term Version 9.6 ON DIS! 

BSwiftLink RS-232 Cartridge (Up to 38.4K baud) .. 
SwiftLink Modem Cable (DB9-DB25) .. 


Atomino 
Ballistix 
Blood Money . 
Chomp! 
Day in the Life of Prehistoric Man . 
Escape Route ..... 
Flummi’s World 
Heavenbound 
Island of the Dragon 


Lazer Duel ,...... 
Lions of the Universe . 
Mainframe F 
Menace .. 

Navy Seal 

Rings of Medusa 
RUN C128 Funpak .... 
RUN C64 Gamepak ... 
Shoot ‘Em Up Pack (Gangster/Time Traveler) 
Skate or Die , 
Slaterman ..., 
The Amazing Spider-Man ,. 
The President Is Missing! ... 
The Three Stooges ........... 
Tie Break Tennis 
Total Eclipse ...... 
Walker ........456 
Wings of Circe ..... 


Mastercard ¢ Visa * Discover ¢ American Express 


P.O. Box 646 


East Longmeadow, MA 01028 


Creative Micro Designs, Inc. 


Info: (413) 525-0023 
Fax: (413) 525-0147 


00° Supports High Speed Interfaces like 


, * Supports ANSI color/graphics, VT102, and 


| + SOFTWARE - CMD 
OTN ovaterm| =1,/ 


version 9.6 


Join the Telecommunications Revolution... get 
on the Information Super Highway TODAY! 


* New faster 80 column modes: Soft-80 on 
C-64 (enhanced scrolling w/ REU); and 
25- or 28-line C-128 VDC 80-col. mode. 

+ Now use any memory device as a buffer 
including: 17xx REU, RAMLInk partition, 
GeoRAM, C128 VDC, BBGRAM, and 
internal C64 memory, 

* New text capture features:Capture text on- 
ine and store in any device; High-speed 
transfers directly into memory and now 
retain buffer contents with battery/power 
backed RAM devices such as RAMLink. 

* Enhanced full featured Text editor can now 
load/save files from the buffer and has an 
integrated script compiler. 

* Script language for automatic operations 

* Simple BBS mode - dial-in downloading 

* Supports real-time clocks in CMD devices 

+ All new user's manual 


Increase Speed Up to 1500% while 
retaining 100% compatibility 


* Easy-to-use — novice user configuration 

* Now supports UUencode and UUdecode 
and converts files on disk orin a buffer. Also 
ASCII <> PETSCII and PETSCII to Unix, 

* Protocal support; Zmodem - up/down load, 
resume (crash recovery), streaming to 
buffer; Ymodem batch, Ymodem-g; 
Xmodem-1k, Xmodem-1k-g(to buffer) 
Xmodem-CRC; Punter; Kermit; WXmodem. 


SwiftLink for baud rates up to 38,400 baud 


VT52 in 80 col, Plus C= color graphics and 
ANSI color in 40 col. All emulation 


modules now load from one window. 


Now Just 


$29.95 
(Specify 5.25" or 3.5" disk) 


THE NEWS MAGAZINE FOR C-64 & 128 USERS 

For more than two years, Commodore World has been keeping 
the C-64/128 market alive with up-to-date information from 
some of the brightest minds in the Commodore community. 
From beginner to expert, CW has something for everyone. 
Columns regularly cover: Programming, what's new, reviews, 
games, GEOS, telecom, projects and much more! Stop listening 
to everyone telling you what you can't do with a Commodore 
and see what the latest innovations can do for you! 


Subscribe for only $29.95 
Canada $35.95, EC Countries $45.95, Other Foreign $57.95 


Shipping and Handling Charges 


Continental United States 
UPS 2nd Noxt 


AK 
Ground Day Day HI, PR | Canada | | | Foreign 
$4.50 $13.00 | 


CALL | $15.00 | $5.00 | CALL 
$5.50 | catt | $17.00 | [seer CALL 
$6.50 ‘cate | $19.00 | $9.00 

~ | $7.60 | s ‘cate | $28.00 | $12.00 | 
$10.00 CALL | $35.00 | $20.00 
$15.00 | $29.00 | CALL | $40.00 | $25.00 
$20.00 | CALL | CALL | $50.00 | $38.50 | 
UPS C.O.D. add $5.00 (US/PR only) 


Policies: CMD accepts: Major Credit Cards, Money Orders, COD and Personal Checks. 
Personal Checks are held 3 weeks. Customer is responsible for shipping charges on 
refusals. Most items are stock, contact CMD for firm delivery. Returns for merchandise 
credit only within 30 days with prior authorization, Crodits are less shipping, handling, 
taxes, customs, duties, and a 10% restocking charge. No refunds or credits on opened 
software, All prices and spocitications are subject to change without notice 


Order Subtotal 

$0.01 to $19.99 

$20, 00 to $29. 99 

$30.00 to $59.99 

$60. 00 to $149.99 
$150.00 to $299.99 
$300.00 to $799.99 
$800.00 and up 


a 
3p 


Stic i ricing 


of d ‘ ‘ ' ‘ ) 
On ithe fastest, mos? aavanced storage devices 
md J 4 i | <F "i > o> Pa 
qvantanie torine ©-64 and G- 123 computer. 


Power-Backed Expandable RAM-disk Drive 


* Fastest possible method of storage with capacities up to 16 MB. Power and 
battery back-up retains data even when computer is turned off! 

¢ Equipped with CMD DOS for flexibility and optimum compatibility, RAMLink 
can emulate multiple 1541, 1571, & 1581 disks or use CMD Native partitions. 

e Ideal for use with GEOS as RAM Disk, RAM Expansion or both. 

* Easily connects to cartridge/expansion port yet behaves and operates like a 
super-fast disk drive with built-in JiffyDOS and SWAP features. 

¢ Built-in Pass-thru port for other cartridges, RAM-Port for REU's & GEORAM 
and Parallel port for fast access to CMD hard drives. 


RL w/1MB $189 » RL 


Wf 2) Wl sps)ee 


Add tastsry 24 ifs 545+" 


Full Featured High Density 3.5" Disk Drive 


¢ The FD-2000 uses modern High Density diskettes (1.6 MB) just like Pentiums 
or the Power PCs. The FD-2000 is the highest capacity floppy drive available 
for the C-64/128 and is more compatible with existing software than the 1581! 

¢ Equipped with CMD DOS for compatibility and speed, the FD-2000 also reads 


FDSeries’ 


and writes 1581 disks, and can emulate multiple 1541 or 1571 disks. 

¢ Easily connects to the serial bus just like any other drive and features 
JiffyDOS for greatly enhanced speed on JiffyDOS equipped computers. 

e Features: SWAP 8/9 switch, Device # switches (8-15), GEOS compatibility 
software, FD Utilities disk and very small size (7.625"L x 4.75" W x 2.375"H). 


PH-2O09 Only = DO HealSins Sloss add g404 


eries. 


Fast SCSI Hard Disk Drives for the C-64/128 


HD Series Hard Drives are available in capacities up to 2 GB, are fully partitionable, 
and can emulate 1541, 1571, & 1581 disks as well as provide Native partitions which 
can be up to 16 MB in size and utilize MS-DOS-style subdirectories. HD's connect 
easily to the serial bus or to RAMLink via a high-speed parallel cable. They are many 
times faster than any other type of physical disk drive. Includes built-in JiffyDOS, 
SWAP feature and Real-Time Clock. HD’s offer superior compatibility with most 
commercial software including BBS, Productivity and GEOS. And with new pricing, 
HD Series drives offer the lowest cost per megabyte of any C64/128 storage device. 
Imagine... No more thumbing through endless piles of disks looking for the right one 
— use your hard drive like a huge file cabinet to organize and store hundreds or 
thousands of disks. Each 40 MB holds up to 240 -1541 disks. Get yours Today! 


hed 
5). 


40 MB Only $249°° 


170 MB: 42) = jesse 4 200) MB: SISOS oes 
1,000 MB CALL 4 Z000 MB 7} 2} }< eae 
J 


* Only valid at time of RAMLink purchase. 


Offers valid only in U.S. and Canada through October 31, 1996. Prices do not include shipping and handling. Pricing and spec's 
subject to change without notice. See our main ad for shipping prices and policies. May not be combined with any other offers. 


Forgotten Worlds 
Capcom (available from SSI) 

Heroes have it rough. They're 
constantly being outfitted with the 
barest essentials and shoved out to 
take on a slew of hostile aliens with 
little or no hope of survival, with the 
small comforts of the occasional 
weapons shop to keep them 
company. 

That's Forgotten Worlds for you. 
Capcom wastes no time (the manual 
is barely two pages long) setting the 
stage for you and hurling you into 
the action. You, the hero, outfitted 
with an anti-gravity device and a 
photon gun, must take on Lord Bios’ 
swarm of alien invaders who 
threaten to conquer the Earth, 
Nobody said life would be easy... 

You progress across a scrolling 
landscape as wave after wave of 
nicely detailed opponent comes at 
you. Your photon gun can fire in 
eight directions as you fly across the 
screen, which is a good thing, 
because the enemy comes from all 
angles. Successful kills often leave 
behind Zennys—coins you can 
collect forlater use towardimproved 
weaponry at the strategically located 
weaponry stores. 

The action is fast-paced and often 
the enemy seems to be endless, so 
you may want to bring a friend who 
plays simultaneously. This allows for 
some much-needed strategy. For 
example, one player can cover 
ground enemies while the other 
picks off airborne targets, or one 
player can take on enemies that 
approach from the right ofthe screen 
(in the direction of motion) while 
the other covers those that attack 


COMMODORE WORLD 


from behind. 
Either way, there will 
be plenty to do, 

You, the hero, are imbued with a 
great deal of energy, which is 
depleted by enemy fire and 
collisions. This energy supply can 
be recharged at shops, but that can 
get expensive quickly. You have but 
one life, although you havea limited 
number of continuation credits at 
your disposal. 

The graphics are amazingly rich 
in this game, from the loading title 
screen onward, Unfortunately, the 
programmers did not cover all of 
their tracks and you may find the 
tophalfofyour character disappears 
ifyou venture too near the top of the 
screen while there is a lot of action 
going on. This can get a little 
distracting when the fleet is almost 
upon you. 

I can’t stress enough how much 
better this game is with two players. 
The ability to aim your gun isa great 
one, but the control systern makes it 
somewhat difficult to keep your gun 
pointed in one direction while you 
move in another. Having a backup 
increases your odds of surviving. 
Even when you master the firing 
angles, the enemy comes from so 
many places it’s good to have 
someone to watch your back. 

On the single-player mode, 
consider yourselfa skilled beginner 
ifyou can clear the first few waves of 
attackers without losing all of your 
energy. The attacks are that intense. 
After a while, you start to settle into 
a rhythm, which gets shaken up as 
soonastheattacksstartin from other 


angles. 
Having another player 
around is a great boon in this 
case, and it’s not many action games 
that allow for 
cooperation, so it would be best to 

take advantage of it while you can. 
Forgotten Worlds doesa great job 
ofcreatinga graphically atmospheric 
realm for you to do battle on, and 
has an excellent two-player option. 
Itisashame that the follow-through 
on the more ambitious visual effects 
was not very strong, and of course 
the control system does leave 
something to be desired. But 
Forgotten Worlds is a great space- 
blasting adventure in its own right. 
-Jason Compton 


Grand Prix Circuit 
Accolade (available from SSI) 

Have youeverclimbed behind the 
wheel of your car and wished you 
were climbing into a Formula One 
race car? Have you ever stopped at a 
red light and revved your engine for 
that ultimate moment whenitfinally 
turns green? Do you geta thrill from 
being the first one off the block at 
that same red light? Do you love the 
challenge ofa narrow winding road? 
Well, if you've answered yes to any 
orall ofthe above questions, you are 
ready for the Challenge ofthe Grand 
Prix Circuit. 

Accolade presents the 
Commodore owner with the 
challenge of a lifetime, that of the 
Grand Prix Circuit, a Formula One 
Racing Simulation, For those of you 
not familiar with the Grand Prix 
Circuit, it is a racing tour open only 


30 


this sort of 


to Formula One race cars. The races 
themselves are held on specially 
constructed tracks filled with 
challenging twists, turns, and even 
tunnels. The Grand Prix has strict 
qualifying requirements and 
presently there are only around 30 
drivers in the entire world who have 
what it takes to enter this Formula 
One event. So as you can see, it’s a 
challenge few have managed to 
conquer. Keep this in mind as you 
settle down into your favorite 
computer chair to race in the Grand 
Prix Circuit. 

When the game begins you are 
first presented with an option screen. 
From here you can choose to 
practice, partake in a single race or 
the championship circuit. Below 
these options isa difficulty level bar. 
There are five different levels of 
difficulty. The first two levels are for 
beginners and provide you with 
automatic shifting and the inability 
to blow an engine. Level three is the 
first real driving level. Here you get 
to shift your gears yourselfand your 
car begins to get damaged much 
more easily. In level four you begin 
to realize that you're not racing 
against your buddies but real 
opponents who want to win as 
much as you do, And finally, in 
level five, you meet up with the 
pros of the Grand Prix Circuit 
where anything can happen. Next 
you'll need to type in your name 
and choose the number of laps 
you'd like for each race. I love 
having the freedom to choose how 
many laps I want to race because 
this means I have the choice of 
playing a long or short game. 


Issue 16 


fam. rvifran 
0 (G/\IY\35 © 
SL SUVULI CY 
rm \ i] f 
Lv ( 
O (G/a\ Leal 145 0 


After you've completed these 
options, you're whisked away to the 
next screen where youget to view each 
of the eight different tracks of the 
Circuit. The tracks are located in 
Brazil, Monaco, Canada, Detroit, 
Britain, Germany, Italy, and Japan. 
Forthefirst time player, recommend 
choosing the Hockenheim-Ring in 
Germany. Although it presents you 
with a few amazing bends, it’s 
certainly a lot easier than the loops 
and tunnels of the Suzuka 
International Race Course in Japan. 

Finally, it’s time to choose your 
car. There are three Formula One 
race cars to choose from: the 
Ferrari—the best of the three for the 
beginning player because it’s the 
easiest to steer; the Williams—good 
for the intermediate player because 
of its speed and braking abilities; 
and the McLaren—the speediest of 
the three and the most difficult to 
handle. The game displays each of 
the three cars on a screen of its own 
along with its relative statistics and 
features. Once you've made your 
decision, it’s off to the races you go! 

Well now, how does the game 
play? As I sat in my chair I found 
myselfactually twisting and turning 
with the bends. It’s pretty realistic. 
The graphics are gorgeous, giving 
you the feeling of actually being in 
all of the eight different countries 
and the sound and music are just as 
good. But, the game is difficult. Even 
in the practice levels | found myself 
ruining my car for quite some time. 
What I finally realized is that speed 
isn’t everything in the Grand Prix 
Circuit. Sometimes due to the all the 
bends you'll find that you just have 
to take it slow. Once you've realized 
this, you'll find yourself actually 
finishing the races and then it’s 
finally time to try the single race. 
Thereal races outside of the practice 


August/September 1996 


races, require you to qualify before 
you actually partake in a race. I had 
no problem qualifying. I even 
managed to qualify for the ninth 
position! And just as surprising | 
managed tocomplete my first actual 
race and bein the top five! Of course 
this was at the easiest difficulty 
setting. 

To rap it up, Grand Prix is what 
you would expect from a racing 
simulation. However, because it is 
the Grand Prix you'll find it more 
challenging than other games of this 
variety. Who knows, perhaps you 
could be the next Mario Andretti! 

-Sherry Freedline 


Death Sword 
Epyx (available from SSD 

Death Sword is a one- or two- 
playersword fight simulation for the 
Commodore 64. A joystick is 
required for each player. 

In Death Sword you take on the 
role of Gorth, a warrior prince of the 
Northlands. During your travels you 
learn of Drax, an evil sorcerer, who 
has seized the city’s throneand, even 
worse yet, imprisoned their princess 
with the intentions of making her 


31 


his future bride. Of course, being the 
noble, fearless warrior that you are, 
you decide to take on the challenge 
of rescuing the princess and 
restoring her to her rightful throne. 
By doing so, you will become a 
legendary hero and be awarded 
wealth and riches befitting such an 
accomplishment. 

On side one of the Death Sword 
disk is a practice game. Here your 
companions will help you train for 
your battles. When you feel satisfied 
thatyou've become anaccomplished 
swordsman, flip the disk over to 
begin your search for Drax. 

Before you can fight Drax for the 


princess’ freedom, you must fight 
and overcome the warriors located 


in the castle’s throne room, the 
enchanted forest, the lava pit, and 
then in the palace’s dungeon. If you 
lose, the sorcerer’s pet, Grundel—a 
slobbering green creature—will 
have you for lunch! 

Allin allitsounds like a fun game. 
Afterreading the manual I was quite 
eager to play the game. I plopped the 
game in the disk drive, loaded it up, 
went to grab a drink and came back 


to find a major disappointment. 
Death Swordis definitely nota game 
of commercial quality. The plot, the 
goal, and even the game play are all 
what you would expect to find in a 
good commercial game. However, 
it’sthegraphicsandsound that cause 
the feeling ofdisappointment. Aside 
from the clinking and clanging of 
the swords and an occasional small 
musical sound effect, the game is 
silent. 

Fighting a warriorisdone through 
the use of your joystick. For instance 
by moving the joystick upward you 
can jump, move it in the southwest 
position to roll backward. Pressing 
thejoystick button while moving the 
joystick gives you additional moves 
suchas overhead chops, head-butts, 
and the web of death. The practice 
mode comes in handy for learning 
all these combinations. Despite the 
low quality graphics and sound, | 
did still enjoy the fight. 

As mentioned above, the game 
can be played by one or two players. 
In the one player game there are no 
time restrictions involved when it 
comes to fighting the enemy. 
However, in the two player games 
the fights can last up to a total of 
ninety seconds. If you and your 
friend survive this time period the 
battle is considered won and you 
will regain your strength in 
preparation for the next battle. 

So, I guess when it comes down to 
the option of purchasing or not 
purchasing this game you'll have to 
weigh your odds. Ifyoulike games of 
this nature involving a good fight, 
youwill probably beable to overlook 
the weaknesses in the graphics and 
sound. However, if you're simply 
looking fora diversion you may want 
to look elsewhere. 

-Sherry Freedline 
%) 


COMMODORE WORLD 


The Software Manual 


Programming the 65816 


David Eyes and Ron Lichty; $65.00; The Western Design Center, Inc, 
2166 East Brown Road, Mesa, AZ 85213; (602) 962-4545 


All of the discussion surrounding the CMD 
SuperCPU introduction has raised questions 
about the 65C816S CPU that forms the heart of 
the CMD unit and what advantages it offers over 
the 6502 CPU. For those interested in learning 
the specifics on this new IC, help is available. 

Western Design Center, manufacturer's of the 
CPU, offers a book designed to help answer 
questions concerning the WDC line of CPUs and 
how to develop applications on them. Titled 
“Programming the 65816, Including the 6502, 
65C02, and 65802” is written by David Eyes and 
Ron Lichty, andis offered by WDC as a reference 
manual. Although written in 1985, the 
information is timely and accurate. 

The book is divided into 4 main sections and 
contains a number of appendices. Assuming 
nothing about the reader's prior knowledge of 
the 65XX line of CPUs or programming in 
assembly language, the first section details 
concepts crucial to understanding CPU operation 
and software development. 

Topics covered include: 


- Descriptions of bits, nybbles, and bytes 

- Displaying quantities in hexadecimal format 
- Boolean Logic 

- Performing arithmetic in a CPU 

- Writing programs in assembly language 


With the reader having some grasp of the 
basics, section 2 details the architecture of the 
three main microprocessors described in this 
manual, the 6502, the 65C02, and the 65816. 
Many advanced readers will find the 6502 chapter 
of only slight importance, but inexperienced 
programmers will find the chapter full of 
important insights into the workings of the 65XX 
CPU line. The basic register set and status flags 
are described, as are the various instructions and 
the layout of memory. Stack operations and the 


COMMODORE WORLD 


stack page are also detailed. At the close of the 
chapter, various “bug” or quirks present in the 
original 6502 as designed by MOS Technologies. 
Most are completely accurate, although this 
reference, as wellas the various WDC data sheets, 
specifies that the NMOS decimal mode leaves 
important registers in unknown states. Although 
this might be true, information to the contrary 
has been presented by Commodore users. 
Chapter 3 details the 65C02, the CMOS 6502 
designed by WDC to replace the original 6502. 
This chapter is very brief, describing only the 27 
new opcodes available in this variant of the CPU. 
For advanced developers, the 65C02 brings with 
it the ability to branch unconditionally (BRA), as 
well as the ability to push and pull the index 
registers off the stack. (No more PLA, TAY, PLA, 
TAX). One section describes the advantages of 
the CMOS fabrication process over the NMOS 
process used on the 65XX CPUs used in the 
Commodore line of computers. Finally, the last 
paragraph describes the differences between the 
NMOS 6502 and the CMOS 65C02 CPUs. 
Programmers will be happy to note that the quirks 
of the NMOS 6502 have been fixed. However, in 
some ways, the 65C02 is too good. In fixing the 
problems in the NMOS 6502, some opcodes in 
the 65C02 actually execute faster. In a few 
instances, the extra speed might wreak some 
havoc, but the ending sentence in Chapter 3 
claims that “this has affected little software”. 
For programmers eager to start developing 
SuperCPU native mode applications and take full 
advantage of the powerful 65816 should pay 
special attention to this book starting with 
Chapter 4. This chapter introduces the 65816 
and the 65802 (the version of the 65816 that is 
pin compatible with the 6502/C02). The two 
“modes” (emulation and native) are discussed, as 
is which mode the CPU powers up in (emulation). 
The 65802's restrictions compared to the 65816 


32 


are described in passing, and the important 
advantages of the 65816 and 65802 are detailed. 
Many already know the 65816 can address up 
to 16 megabytes of memory directly, but few 
will note that stack and zero page have been 
widened to include all of the first 64 kilobyte 
bank of memory. 

Detailed diagrams of the 65816 register set are 
illustrated, and some nomenclature specific to 
the 65816 is discussed in this chapter. The book 
shows programmers how to view the 16 
megabytes in “banks”, as well as “pages”. Direct 
Page (the expansion of zero page) is described in 
some detail, and each new register is outlined 
with its functions detailed. Introduced in the 
chapteras wellisthe notion of 16 bitaccumulators 
and index registers. As this concept and how to 
utilize the resulting registers subtly affects 
programming choices, the books takes ample 
time to discuss this new feature. As programmers 
might guess, theexpansion of these registers affect 
standard 6502 opcodes, and the books describes 
thisas well. The 9 new addressing modes available 
in the 65816 are outlined, as are the 78 new 
opcodes available in this CPU. The remainder of 
this chapter describes the 65802 and howit differs 
from the 65816. Interestingly, this chapter closes 
describing how the 65816 and 65802 provide 
slightly better compatibility with the 6502 than 
the 65C02 does. The cause: The 65816/802 does 
notalterany timing ofany 6502 opcodes, whereas 
the 65C02 does. 

Part 3 of this book begins the Tutorial Section. 
This section begins by outlining the REP and SEP 
opcodes, used to switch the 65816 between 
modes, Then, the assembler notation used 
throughout the tutorial section is described, 
Readers should beware that, although the 
concepts and codes presented in this tutorial are 
accurate, the assembler syntax and some 
directives used in the samples will not be familiar 


Issue 16 


to Commodore developers. The samples were 
developed on an Apple computer using an Apple 
assembler, so some alterations by the reader will 
need to be made in order to create correctly 
assembled samples. To give some indication of 
this sections importance, it occupies almost 200 
pages, while the previous 2 receive only 75 pages. 

Much of this tutorial information applies to all 
the CPU models referenced by the book’s title. 
However, someinformation and some addressing 
modes are only applicable to the 65816 and 
65802. Like all machine language tutorials, this 
one shows how to move data around, how to use 
the various addressing modes on each CPU, how 
toalter the flow ofa program, and how to perform 
simple math using the CPU. Further chapters 
describe logic and bit operations, utilizing the 
complex addressing modes available on the 
65816/802, how to write programs as collections 
of “subroutines”, and how to take advantage of 
“interrupts”. Veteran developers will find much 
of the information redundant, but new 
programmers may find themselves overwhelmed. 
I would suggest attempting the tutorial in stages. 

Section 4 provides some examples of code used 
to perform real world work, from multiplying 
numbers to dividing them, An entire chapter is 
devoted to describing andimplementinga 65816 


step and trace debugger called DEBUG 16. A final 
chapter in this section outlines several “gotchas” 
in developing applications and offers ways to 
alleviate or eliminate these problems. 

If, perchance, you are the type who can quote 
hexinyoursleep, can assemble complex programs 
by hand or in your head in minutes, dream in 
binary, oris referred to by others in hushed tones 
as “guru” or“master programmer”, youcan safely 
skip to the Sth and final section. This section 
provides a wealth of reference materials for all. 
Chapter 17 describes each of the 65XX/65XXX 
addressing modes in detail, while Chapter 18 
describes each instruction available in this line of 
CPUs. The final chapter, 19, lists all the 
instructions and which CPU can utilize each one. 
In addition, the complete opcode matrix table 
showing opcode values, instruction lengths, and 
execution times is presented. 

With the book, two appendices are provided, 
The first describes each of the pins on the various 
CPUs discussed in the book, while the second 
describes some of the support ICs available for 
the 65XX line of CPUs. If you are electronically 
inclined, these chapters will prove useful when 
interfacing to any of the CPUs described. 

Although not part of the book itself, Western 
Design Center includes a current set of data 


specifications on one or more of its CPU line in 
the book’s 3 ring binder. Although the 
information is somewhat redundant given the 
content of the book, readers can use the data 
sheets as an additional reference to double check 
accuracy of the book. It can also be used asa quick 
programming reference, as the 571 page book 
can prove somewhat unwieldy to use when 
developing applications. 

The usefulness of this book depends on your 
needs. If you are learning to develop 65XX 
applications for the Commodore computer, the 
size and wealth of information in this reference is 
overkill. In addition, the extra information on 
the 65816 and 65802 will simply confuse you. 
However, if you are gearing up to develop 65816 
native mode applications for the SuperCPU or 
other ‘816 equipped accelerator cartridge, you 
can find no better reference. Although the data 
sheets on the ‘816 provide some information on 
programming the CPU, theinformation is sketchy 
andincomplete at best. The data sheets are meant 
to provide basic information, not substitute fora 
programmer's guide. So, before you start 
developing those native mode apps for the CMD 
SuperCPU, graba copy of this book to understand 
the features available to you. 

-Jim Brain 


CW & RUN BACK ISSUES 


For years, RUN Magazine provided Commodore Users with a great source 
of information, and now CMD has given you Commodore World. Don't let this 
valuable information slip away—fill in the voids in your library now! 


RUN Magazine Back Issues 
Any 3 issues for $12.00, any 6 for $18.00, 
or any 12 for only $24.00 


RMJAN89 January 1989 RMJUNSO June/July 1990 
RMFEB89 February 1989 RMDEC90 December 1990 
RMMAY89 May 1989 RMJAN91 Jan/Feb 1991 
RMJUN89 June 1989 RMJUN91 JuneJuly 1991 
RMJUL89 July 1989 RMJAN92 Jan/Feb 1992 
RMAUG89 August 1989 RMMAR92 March/April 1992 
RMSEP89 September 1989 RMMAY92 May/June 1992 
RMOCT89 October 1989 RMJUL92 July/August 1992 
RMSP89 Special Issue 1989 RMSEP92  Sep/October 1992 
RMJANSO January 1990 RMNOV92 Nov/December 1992 
RMMAY90 May 1990 


Shipping: 3-6 issues - U.S. $3.00, Canada $5.00, Foreign $15.00; 
12 issues U.S. $5.00; Canada $7.00; Foreign $20.00 


Commodore World Back Issues 
$4.95 each, or any 3 for only $12.00 


Cws 


Commodore World Issue 1 Commodore World Issue 9 


CW2 Commodore World Issue 2 CW10 Commodore World Issue 10 
CW3 Commodore World |lssue3 CW11 Commodore World Issue 11 
CW4 Commodore World Issue4 CW12 Commodore World Issue 12 
CW5 Commodore World Issue 5 CW13 Commodore World Issue 13 
CW6 Commodore World Issue 6 CW14 Commodore World Issue 14 
CW7 Commodore World Issue 7 CW15 Commodore World Issue 15 


Shipping: U.S, and Canada $2.00 for first issue, plus 
$1.00 per additional issues,; Foreign $5.00 per issue. 


TO ORDER CALL 1-800-638-3263 


August/September 1996 


33 


INTERCORP COMMUNICATION Presents 
CSOFT Wares! 
{As Seen on Many BBS's} 
Digi<—>Dex Vi. 


a SEQ. file reader that will read text as well as art.and supperts drive’ 
8-11Jt also has many Digi-seunds which are very entertaining. 
$7.00 + $2.00 Sail 
D.S.11 Carteens” 
10 of your Favorite Carteen Digi Samples en one disk with avery cas 
to use Menu System fer leading and playing. 
Great For the Kids! $3.00 + $2.60 Sail 
Send erders te 
Intercerp Communication 100 Pinegreve Pentiac,M!, 48342 
Alaska, Hawil.a International add $1.80 te Sah 
SHELTON, WA. 


CPU = 


The Commodore 128/64 Power User Newsletter 


CPU is a quarterly publication that for 
two years now has kept its readers 
abreast of new developements and 
helped those to get more out of their 
investments. 


Sample/Back Issues: $3.50 

6 Issue Subscription: $15.00 us 
International: $27.00 us 
Canada and Mexico: $21.00 us 
Ushering the Commodore user into the 21st Century. 


P.O. BOX 1817 


COMMODORE WORLD 


The SvsOp's Corner 


Notice of Disclaimer: 

Many of the ideas and instructions used in this 
column are specific to a single Bulletin Board 
Program. Many things may work with other 
programs, and many may not. Some of the 
topics that I touch on are a direct result of over 
3500 hours working with several computer 
configurations, and up to eight modems, Some 
of my ideas may not work with your 
configuration. Before you try any of them, be 
sure to check with your manual, or whomever is 


providing you with customer support. Those 
who assisted in the background information for 
this column: 


Andrew L. Fish, Marquette University, 
Michigan (list of ANSI commands) 

Andrew Bernhardt, author of Does The Job 
BBS 

Ali R. Talaie, author of Computer Acronyms, 
Jirst edition 

Sanford Walke IV, Isthmus corp. SYSOP 
(provides UNIX command help) 


This particular column will continue with basic 
instructions for use of some of the ANSI codes 
that you can use on your BBS to create graphics, 
menus and screens that will keep your users 
interested in what you have to offer. I know that 
a lot of BBSs for the Commodores use the native 
graphics that Commodores use, so | will just give 
you some of the basic ANSI commands right 
now, and if there are enough requests for more, 


COMMODORE WORLD 


by Maz Cottrell 


(mcphoto@izzy.net) 


then I will get into them in more detail ina future 
column. Before I continue, I think it's important 
to touch on another item. 

Most of my company’s presence is on the 
Internet: my photography company and my 
newspaper publish on a daily basis there. As a 
result, | am a regular maven in the newsgroups. 
My favorite of which (ofcourse) iscomp.sys.cbm. 
Lately, I've noticed that BBS programs are a hotly 
debated topic. If you want to start a debate, 
mention a BBS program, then stand back. Each 
programmer has worked hard to create a great 
program, and often each one has its own features 
(and quirks) that sets it apart from the others. 
Each SYSOP, potential or running a board, has a 
horror story to tell. 

Thereseemsto bea certain amountof difficulty 
in finding just the right BBS program, and when 
you decide which one you want, actually getting 
the thing to disk drive can be the hardest part of 


34 


getting a BBS online. After seeing a lot of ground 
teeth lying around the newsgroups, I have set out 
to find the various programmers and software 
distributors that deal with BBS programs. 
Beginning with my next column, I'll try to 
highlight a few. 


The Fun Stuff 

O.K., onto the fun stuff. We'll create a basic text 
file that will allow you to see some of the cool stuff 
that you can do with graphics and commands. 
One of the things that you should consider is at 
what modem speed the user will be logging on. 
Sometimes if you are doing an animation, a 2400 
baud user will not see as good ofan effect asa 14.4 
baud user. Likewise a 14.4 user might blink and 
miss a 20 frame animation. 

ANSI graphics are a powerful tool that you 
can use to create some pretty neat things on the 
users screen. If you have the time and patience, 
you can really get some wild effects. Most of 
what I have done on my BBS is information 
based (asin no games or fun stuff) so I really have 
to keep hopping to keep a user's interest. The 
part that I like the best is the ASCII artwork that 
artists around the world create for BBS SYSOPs 
to use. I mentioned in my last column that Iam 
setting up my BBS to allow you, the reader, the 
ability to see what I am talking about online 
while reading about how to do them here. I also 
have a nice gallery of artwork. I have used most 
of them on my BBS at one time or another, and 
like them, so I am passing them along to you. 
Unfortunately, these things can be complicated, 


Issue 16 


so I won't type any of them in here. Doug is 
probably pretty happy about that! 

Instead, if you email me, I will give you the 
logon instructions. I have set up the system to 
demonstrate how to make a menu look good to 
the user, and how to give the user what they want 
withoutasking, along with giving yousome ASCII 
art that will work on just about any BBS. 

ANSI was designed to be used onall computers, 

but has been associated with IBM computers. 
IBM (ora clone ) manuals come with a listing of 
ANSI commandsand how tousethem. But, where 
ANSIreally shinesisin telecommunications. You 
can see some pretty cool graphics on various 
BBSs that use ANSI. This is because of the 
character control that it gives you when you are 
using a text based telecommunications program. 
You can think of ANSI graphics as a poor cousin 
to HTML (HyperText Markup Language). The 
United States Government has a BBS for federal 
jobs listings that uses a lot of these graphics. Even 
on my Commodore equipped with a terminal 
program like Novaterm and a low budget color 
monitor, you can see the most advanced of them. 
Some BBS programs will use PETASCII graphics 
and not ANSI. Here's another bit of trivia for you. 
Ifyou have a shell account on an Internet Service 
Provider, the menus that they use also use ANSI 
commands. The whole idea behind ANSI graphics 
is cursor and color control. I also use ASCII art, 
which is keyboard characters arrainged into a 
picture. Some of these can be really detailed. 
However, they almost always require a black 
background and screen clears to view them 
properly, which is where we should start. 


The Structure of ANSI 

ANSI, likeany other language for computers (even 
though its uses are for textfiles and animation, 
you can consider it a language of a sort), has 
specific families of commands. Let’s look at color 
control. Here are some of the ANSI commands 
that are available, thanks to Mr. Fish. 


How to Input the Commands 

As you read my instructions on using graphics, 
you'll see (esc) used a lot. This means that you 
must use whatever code that your BBS uses for an 
escape sequence. This tells the computer that you 
are giving it a command. The BBS program that 
Loperate uses CTRL P (holding down the Control 
key and pressing the ‘P’ key at the same time), or 
Commodore P to tell the system that an ANSI or 
some other command is about to be issued. The 
CTRL P is part of the escape coding from MS- 
DOS (Microsoft DOS—if you look at your C128's 
40-or 80-column start-up screen, you will see the 
Microsoft copyright). As we all know, Microsoft 


August/September 1996 


provided Commodore with some ofthe DOS that 
we use on our machines. IBMs will have you press 
the escape key to send an ANSI command. 
Commodore 64s don’t normally have an escape 
key, so only part of the command, CTRL P, or 
Commodore P is used. This is not true in all 
Commodore programs. As another example, if 
you were using a UNIX system (some IBM owners 
and most Internet providers use UNIX ora newer 
version called LIUNIX), the escape sequence 
would be CTRL V. 


Cursor Control 

Controlling your cursor is a very importing 
activity. With ANSI, youcan makeit goup, down, 
sideways, just as ifyou were using the cursor keys 
ina print statement on a Commodore. Well, you 
are doing this on a Commodore, you are just 
using a different route to get the same results. 
Here isa list of the cursor commands that should 
be available to you. Note that ‘x’ is a number. 


COMMAND DESCRIPTION 

[xA moves cursor up x 
lines,same column 

[xB moves cursor down 
x lines, same column 

[xC moves right x 
columns, same line 

[xD movesleftx columns, 
same line 

[xsyH moves cursor to 
location x,y onscreen 

[xX erases spot that 


cursor is on and x 
characters 


This is not a complete listing of the text control 
commands. These are the ones that I have used 
with my system, so I know that they work. You 
can get some neat effects with these commands. 
One of the things that I do on my system when it 
is time for the user to input a system command 
(log off, download, etc.) is draw a reverse line of 
spaces, and then move the cursor back to the 
beginning of the line. When the user types in a 
command, the type shows up as non-reversed 
letters. It’s a little thing, but looks great on the 
screen. 


Colors 

The background colors are separated from 
foreground (text) colors by the numbered prefix 
in the command. The use of an ‘m’ (note that it’s 
a lowercase m) will tell the BBS that you are 
issuing a color command. The foreground is 
indicated by a ‘3’ and the background a ‘4.’ Here 
are the color commands: 


35 


FOREGROUND COLOR BACKROUND 
30 black 40 
31 red 41 
32 green 42 
33 yellow 43 
34 blue 44 
35 magenta 45 
36 cyan 46 
37 white 47 


You can see that the last digit of the color 
commands are the same for both the foreground 
and background. Only the 3 and 4 are the 
different. Keep in mind that an ‘m’ is used at the 
end of the command. An example of this 
command might be: (esc)[40m. This turns the 
background black. 


Attributes 
Attributes are things like reverse text, blinking 
and underlining. 


COMMAND ATTRIBUTE 
{Om All attributes off 
{5m Blinking on 

{7m Reverse on 

[25m Blinking off 
{27m Reverse off 


Clearing the Screen 

When creating a menu or textfile, you need to 
decide whether ornot youwant toclearthescreen. 
If the file has a lot of text or graphics, then I 
usually issue a screen clear. If there are just a few 
lines, then I might just use a few carriage returns 
to separate the lines of text. An example would be 
ifyouhada gamethat you created. The top half of 
the screen can be left alone for a graphic or a 
menu, and using cursor commands you can just 
add promptsat the bottom ofthe screen, changing 
the picture as needed. The biggest things is 
whether or not the previous screen needs to be on 
the monitorstill. For instance, clearing the screen 
after letting the user see a disk directory is not a 
good use of this command. Clearing it for the 
Command input menu that your BBS uses is. 
Sometimes. The final decision is up to you, the 
SYSOP. Thisis another time where the beta tester 
and logging on from another computer come in 
handy. 

You'll notice that ANSI commands are usually 
anescape key input, followed bya number(s) and 
then a letter. The letter part ofa ANSI command 
iscase sensitive, which is most important because 
an upper case J will do something different than 
a lower case j. 

To add a screen clear toa file, we must use the 
command (esc)[2]. You can add a screen clear 


COMMODORE WORLD 


part way through the file. This can be of help if 
you are doing some kind of animation, or want to 
have multiple on screen prompts within a single 
textfile. The addition of the [ character is also 
from our old friend MS-DOS, You should note 
that in an animation sequence, each code should 
have the escape sequence, evenifthesystemallows 
for multiple ANSI commands. Mostly, it is for 
neatness of the coding, but having a single escape 
key sequence can sometimes have poor results. 
Don't ask me why, I just heard that from a UNIX 
guru. 

So, to start our textfile, we will enter our first 
ANSI command! 


(esc)[2J 


This will clear the screen. Now, let's assume that 
you will be showing the user a textfile that will 
show them the system specifications of your BBS, 

The next thing that we should do is to use a 
color command to make the screen background 
black so the the art will show up clearly. 


(esc)[40m 


Now we have aclear black screen. But what about 
the text color? How about a nice red? 


(esc)[31m 


There. Now we can add some specs about our 
BBS, Let's assume for the sake of this article that 
we are doing this on my BBS. You can change the 
text to suit your own system. I'malso going toadd 
some other commands that we'll talk about next, 
so the full listing in the sidebar, “ANSI Info 
Screen”. 
As you can see, there are a lot more commands 
in this little bit of text than you might think, 
What we just did was to reverse the text (esc)[7m 
and change the text colors (esc)[3#m so that what 
we want highlighted will be in reverse. You also 
have to make sure that you change the screen 
back to the black background, red text when you 
are done by using (ese)[0m (turn offall attributes) 
and (esc)[3. Lm after EACH series of text. To answer 
the question that all newcomers have to this, yes 
itis a lot of work. That is why you should only do 
the fancy stuff with files that will stay the same 
most of the time such as command menus, help 
files, etc... As far as shutting off the attributes 
(colors, reverse text) every time I change some 
aspect of the file, | do it from personal habit, not 
because you have to do it that way. Some will tell 
you to do this a little differently, but I like it 
because it makes sure that you have the text and 
background set correctly. 


COMMODORE WORLD 


Youwill probably gravitate toward some ANSI 
commands that appeal to you more than others, 
which is where the personality of your BBS will 
come to life. After all, it is how a system looks to 
the user, whether it is an Internet Provider 
running ona SUN and UNIX ora Commodore 64 
running a BBS and using ANSI, that shows the 
world the SYSOPs personality. 

So, we have cleared the screen, changed the 
text color, and made some parts of sentences a 
reversed screen. You should be able to figure out 
how the rest of the commands work without too 
much trouble. A complete list of the ANSI 
commands is one of the things that lam planning 
on putting on my BBS. All of the commands 
follow thesamerules and techniques forinputting 
them. 

I'llleave youwitha description of the technique 
that Luse to create my files and animations. First, 
Ilog onto my BBS from my other computer. Then 
| use the editor in the BBS to create the file while 


online, After each line, | test the file to see if it is 
working correctly. One important thing to 
remember about ANSI is that the commands are 
not seen when the file is listed. So, writing down 
what you are doing on a sheet of paper is pretty 
important. Why? Because the command is not 
visable on the screen once you list the file. In fact 
it is very important. I know, because I can forget 
what I coded and when I go back to change 
something, | forget things like the number of 
columns I moved the cursor. This particular 
edition of the SysOps Corner should have given 
youa pretty good idea on using these commands. 
ANSI can bea powerful tool ifitis used right. But 
in the wrong hands... 

Next time, I will start with my big ‘Interview 
the Programmers’ project which should be 
entertaining to say the least. Until then, you can 
email me with questions, flames, input, ideas or 
even log on instructions. 


%) 


ANSI Info Screen 


(esc) [27 
(esc) [40m 
(esc) [31m 


Welcome to the 


(esc) [7m (esc) [36m 


SySops Corner Demonstration BBS (esc) [0m (esc) [31m 
System specifications: 

Computer: (esc) {7m (esc) [31m 

Commodore C128D (esc) [0m (esc) [31m 

Drives: (esc)[7m (esc) [36m 

FD2000, HD-20, RamLink (4 meg) (esc) [0m (esc)31m 


Modem (esc) [7m (esc) [32m 


US Robotics Courier 14.4 with ASL/V.32 (esc) [Om (esc) {31m 


Todays date and time: 


(esc) [7m 


( Today’s time and date ) (esc) [0m (esc) [31m 


36 


Issue 16 


fi Grower's Guide to 


User Groups 


The President of the Tampa Commodore User Group 
shares his group's methads for increasing ing membership 


As an old ‘die hard’ supporter of Commodore 
and active user group president on and off for the 
last ten years, I've seen Commodore go up and 
down and up again as we move through time. As 
with all things, times change, as so the struggle to 
survive presents itselfasa constant need to adapt. 
Commodoreisstill a viable machine as it was way 
back in 1982. Only the nature of the computer 
has changed. The users of Commodore are old 
‘die hards’ and still a new large array of first time 
computer owners. I've been in contact with several 
other sister clubs, all experiencing the problem of 
loss of members. So it may be true, except for us 
in Tampa. Keeping abreast of changing times, we 
have realized that our mission as a support club 
has also changed. In fact, we are more important 
than ever. Commodore is still a hot machine, 
only the price has changed from in store purchase 
newtoused. Inmany cases the first time computer 
owner, happy at finally being a computer owner, 
suddenly realizes the support has disappeared 
off the open market. This, of course, is not true. 
The support has just moved from local stores to 
mail order. New programming and hardware 
advances has made the C64 and C128 still the 
best home computer, in my opinion, of anything 
around. 

Here in Tampa, we see our mission as one to 
pickup the 'stragglers’. Oh yes, Commodore users 
are still out there, but do they know that your 
local Commodore support group is there? As a 
club, we have all the support companies on file to 
service new members. And we have many new 
members. Infact, we havetripled our membership 
since the institution of new policies since January 
1996. And we shall quadruple or more in size 
before this year ends, reaching our former 
strength not seen since the late 80's. 


Here is the six part plan we instituted: 


(1) STORE FLYERS - If you have a local store 
available, print up some detailed in-store flyers 


August/September 1996 


advertising your club. This will become your main 
source of growth. 

(2) BUSINESS CARDS - Have business cards 
printed up to advertise your user group. On ours, 
we have our club name and a few lines such as 
“C64 and C128 support”, “programming”, “large 
software libraries”, and “printer re-inking”. We 
also have “more information” and the phone 
number of the new member coordinator. These 
business cards can be put up on store bulliten 
boards, handed out to flea market dealers, at 
garage sales selling Commodore equipment, 
taped onto equipment at thrift stores and alike, 
and passed unto sellers of equipment advertised 
in local papers. These business cards are 
welcomed as it helps sell the Commodores being 
offered forsale. The first thing that thenew owner 
will do is to contact your club for support and 
information. 

(3) LOCAL BBS-Ifyouhavealocal Commodore 
BBS in you area, align your club with it. Many 
times most on line users, for whatever reasons, 
don't participate with their local club. But here in 
Tampa, we have merged the two concepts 
together. Asa club, we even have private message 
bases and downloading of club owned public 
domain software libraries. We have also designed 
the club to conduct on-line business for those 
members unable to make a voting meeting. We 
pride ourselves with BBS get togethers quarterly 
where we litterly take over a local resturuant 
establishment for a Sunday noon brunch with 
lively conversation on the latest Commodore 
upgrades and software. 

(4) LOCAL COMPUTER PUBLICATIONS - 
Local computer magazines and such are probably 
offerer free and distributed widely among local 
computer stores. Check these out for free 
advertisements of your user group. You may be 
surprised of old Commodore owners, who have 
lost touch and out shopping for a new system. 
You may be further surprised that they are more 


37 


interestedin upgrading their Commodore system 
rather than to invest more capital into a new one. 
Remember, you club has the listing of 
Commodore support no longer seen in computer 
stores. 

(5) LOCAL NEWSPAPERS - Check out your 
local neighborhood newspapers for free 
advertising of you user group. You can get free 
news print under the Weekly News or Club 
Information sections. You may have to send 
weekly letters or fax the club meeting times or 
place to keep this kind of advertisement active. 

(6) CABLE TV ACCESS - All cables companies 
offer a free local access channel. Your cable 
company may also offer a channel free of charge 
advertising local clubs and community events. 
Design a clubad and have it on the tube. We have 
had several contacts and new members through 
this kind of advertisement. 


Oh yes, Commodore has changed! But so has 
the world and all computering. All the above 
ideas have worked successfully for us. Try it in 
your local support group. Only a few local users 
and no organized support, form a local group, 
advertise, and watch it grow. Commodore is still 
around. In most areas, users are unaware as to 
how much it has been upgraded in hardware and 
software. Computering is still a fun hobby in the 
home, with great educational and in-home 
business applications. The mission and life blood 
of Commodore users groups as we reach into the 
millenium is to reach out to the silent army of 
‘stragglers’ and new first time owners, excited 
about their first affordable home computer. My 
words to you are “ADVERTISE AND GROW", 
Can you beat our club growth rate as we have 
experienced here in Tampa? 


Jayme Rice 
President, Tampa Commodore Users Group 


%) 


COMMODORE WORLD 


(arrier Detect 


By Gaelyne R. Gasson 


<> 


TRANSFERRING FILES ON THE INTERNET WITH FTP 


As Easy As FTP 

A recent advert for the Internet grabbed my 
attention with big bold lettering: “Welcome to 
the smorgasbord!”. It went on to describe things 
they had to offer, including the ability to download 
files from hundreds of Internet sites via FTP. 
What’s FTP all about? It sounds mysterious. It 
uses Unix commands. It must be terribly difficult 
to do, right? Wrong. 


What is it? 

FTPing is similar to being able to view BBS 
download directories without the benefit of 
havinga program to give you the file descriptions. 
The basic gist of it goes something like this. First 
you log onto an FTP site, (usually anonymously). 
Then, just as you would with your Commodore 
computer when looking fora particular program, 
you move about the directories, listing them. 
When you find what you're looking for (or 
something that interests you), you send the file to 
your home directory on your Internet Provider. 
Once the files are in your home directory, youcan 
download it to your computer. Some FTP systems 
let you skip this step and download files to your 
computer without exiting the FTP program. 
That's not too difficult is it? What's that? You're 
worried about all the little steps between and 
what commands you need to use? That's 
understandable. | felt the same way the first time 
I read about FTPing. Let's walk through the 
process and discuss it along the way. 

FTPisan acronym for “File Transfer Protocol”, 
and it’s a utility, not a command. Once you start 
it, it’s in control until you exit or quit the utility. 
How you go about starting a session depends on 
the type of Internet access you have. If you're 
using an Online service, or your provider has a 
menu, you will find FTP as a menu option, 
otherwise you will be usinga Unix shell. Although 


COMMODORE WORLD 


it may seem easier witha menu, it may be faster to 
use the shell instead. Another advantage of using 
the Unix shell is that most text and commands 
will match articles, such as this one, or books you 
read on the subject. When you FTP usinga menu, 
you're at the mercy of whomever wrote the menu 
program for the type of prompts you get. | know 
it’s a weird type of choice to make—no prompts 
at all versus prompts that might not make any 
sense. Welcome to the Internet. <smile> 


Anonymous Logins 

We're going to jump in via the plain FTP utility 
from a Unix shell. There are two ways to start 
FTP, One way is to type “ftp” on the command 
line, but thisisn’t very efficient since you will next 
be telling the utility where you want to go. One 
Internet site with heaps of Commodore files is 
cenga.uwaterloo.ca, so let’s go check it out. On 
the command line, type: 


ftp cenga.uwaterloo.ca <return> 
My first attempts at FTPing were frustrating for 
me because the system kept telling me no such 
place existed. After several tries, I finally found | 


was typing with dyslexic fingers, and I'd 


38 


transposed two characters. (I'dbeen typing “gna” 
instead of nga”). Once I typed the name correctly, 
everything worked fine. Ifyou misspell the initial 
address, you will find that you're already within 
the utility, and can tell this because your prompt 
will have changed to “ftp>”. From this prompt, 
you must tell it to “open” the site you wish to go to. 
For example: 


open cenga.uwaterloo.ca <return> 


Once you've connected, youshouldseesomething 
like: 


Connected to cenga.uwaterloo.ca. 
220 punisher FTP server (SunOS 4.1) ready. 
Name (hal9000.net.au:moranec): 


Your Emailaddress will appear in the parenthesis, 
anda cursor will beapparentrightafterthe colon. 
Ifyoutypein yourname here, the system assumes 
you'rea pre-registered user of cenga.uwaterloo.ca 
and will expect areal password. Instead, type the 
word “anonymous” and press return. You'll be 
prompted for the password: 


331 Guest login ok, send ident as password. 
Password: 


Translated to English, “send ident as password” 
means “type your Email address for your 
password”. As you type, you'll notice that you 
can't see what you're typing, as it doesn’t “echo” 
your password. So type carefully. If you define a 
macro in your term program with your Email 
address you can enter this very quickly without 
errors. 

If you mistype “anonymous” or your Email 
address, you may be able to continuewith logging 
in by typing “user anonymous” and pressing 


Issue 16 


return, This doesn’t always work with every 
Internet site, but is worth trying, If you've made 
a typing mistake, it’s possible that the remote 
system (in this case, cenga.uwaterloo.ca) might 
“close the connection” and you find yourself 
looking at the FTP prompt on your own system. 
Don't panic. Try again, but type more carefully or 
define macros in your term program to do the 
typing for you. 

On slow systems, itcan be along time between 
typing a command and something happening. 
Have patience. Don't keep pressing keys, that 
will only make it more confusing for you. Once 
you've successfully logged in, you'll see: 


230 Guest login ok, access restrictions apply. 
ftp> 


Your cursor will be next to the “ftp>” prompt. 


Moving Around and Seeing the 
Sites 

From here you use Unix commands to navigate. 
You'll have to move to the area where the 
Commodorefilesare held. On ccnga.uwaterloo.ca 
you'll want to move to the /pub/cbm directory. 
The command to change directories is the same 
as you use on your Unix account: the ed (change 
directory) command. Type: 


cd /pub/cbm 


Unlike Unix, when you send a command that 
works the FTP utility returns a message such as: 


250 CWD command successful. 
or 200 PORT command successful. 


After changing directories you'll want to look at 
what's in it so you can decide what goodies to 
download. This is where FTP takes a different 
turn from Unix, as you can type “dir” and press 
return OR use the Unix commands: 


“Is” or “Is-al” (see Example 1). 


This list is abbreviated to save space. In fact, it’s 
solong, it will scroll offyour screen! You can send 
a command that will show the directory and 
“page” it to the screen, so you can use the space 
bar to scroll each screen. The command is: 


“Is -l more” 
Addthis to your term program’s macros and you 
can hit the macro key instead of typing it each 


time you need it. A similar command is “Is -C”, 
this will show you the files and directory names in 


August/September 1996 


multiple columns but you won't have the added 
information about each file. To stop a paged 
listing so you can send other commands while 
seeing a filename, press the CTRL and ‘c’ keys 
simultaneously. 

Speaking of info, just what ARE we looking at? 
Thisisa Unix directory listing. Working from left 
to right, the left-most column shows the 
permissions” for each file and directory. If the 
very first column has a letter “d” in it, that entry 
is another directory. In the above example, there 
are two files, and the rest are directories. The next 
column relates to the something called the “link 
count”, and we can ignore it. Most Commodore 
users who do much telecommunications will 
recognize the name shown in the third column. 
Craig Bruce is the administrator for this site, and 
he is the owner of the files and directories. In 
other FTP directories on cenga.uwaterloo.ca, you 
will see “ftp” or “nobody” in this column. Just 
after this you'll see the size of the file or directory 
in bytes. The date displayed shows when the file 
or directory was last modified. This can be useful 
if you're planning to use FTP to stay up to date 
with the files. Many people check the INCOMING 
directory daily, and check the date shown next to 


the directory name to see when new files have 
been uploaded. The last itemis the file or directory 
name. This is Unix, so the filenames are case 
sensitive, Type the filenames as they appear in 
the listing. 

The first file in the directory is 
“QOREADME”, You can read this by typing: 
“more 0OREADME”, It will display one screen 
at a time, and you use the space bar to see the 
next. Any text file can be read this way, which 
is useful for reading file descriptions, or the 
rules for using an FTP site. 

Let’s check out the INCOMING directory 
and see what's new. To do this, we move to the 
directory with the cd command we used 
earlier. Type: “cd INCOMING”. Use the “Is -] 
Imore” command to list the directory (see 
Example 2). Here you see the same names as 
were in the main /pub/cbm directory. To save 
himself time, Craig set this area up so those 
who upload files can put them in the 
appropriate INCOMING directory. This way, 
after he’s checked the files, he can move them 
to the directories that fit the file category. In 
other words, this is a temporary holding place 
for files. 


EXAMPLE 1 
200 PORT command successful. 
-Yw-r-r— 1 ecsbruce 5331 Apr 25 1994 OOREBADME 
drwxr-xr-x 21 csbruce 512 Nov 6 19:38 INCOMING 
Grwxr-xr-x 3 csbruce 1024 Nov 6 19:55 archivers 
-Yw-r-r—- 1 csbruce 2048 Nov 6 22:41 ls-1R 
drwxr-xr-x 4 csbruce 1024 Jun 15 21:28 telecomm 
drwxr-xr-x 4 csbruce 1024 dul 26 20:42 utill28 
rwxr=xr-x 5 csbruce 1536 Nov 6 22:2 util64 
drwxr-xr-x 2 csbruce 1024 Nov 6 22:25 vico-20 
EXAMPLE 2 
INCOMING: 
total 25 
=rw-r-r- 1 csbruce 2145 Oct 22 18:23 QOREADME 
Grwxrwxrwx 2 csbruce 512 Nov 6 19: archivers 
drwxrwxrwx 2 csbruce 512 Dec 25 05:15 telecomm 
drwxrwxrwx 2 csbruce 512 Jan 1 13342 unix 
Grwxrwxrwx 2 csbruce 512 Feb 6 18:29 uctili238 
drwxrwxrwx 2 csbruce 512 Feb 3 09:37 util6ea 
drwxrwxrwx 2 csbruce 512 Nov 6 22:25 vic-20 
EXAMPLE 3 
cd telecomm 
dir 
INCOMING/telecomm: : 
-rw-rY-r—- 1 csbruce 47872 Sep 16 01:42 des200-1.stx 
-rw-r-I1- 1 csbruce 28160 Sep 16 01:43 des200-2.sfix 
-Yw-r-r— 1 csbruce 43776 Sep 16 01:44 des200-3.sfx 
-rw-r—r— Lt csbruce 20736 Sep 16 01:45 des200-4.sfx 
-rw-r—-r— 1 csbruce 32768 Dec 25 05:37 wavedemo.sfx 
-Yw-Y—r— 1 csbruce 366 Dec 25 05:37 wavedemo.txt 
39 COMMODORE WORLD 


Let's check out the INCOMING/telecomm 
directory. First we change to the directory with 
the cd command, then we list it (see Example 3). 

Again, this directory has been shortened and 
changed for demonstration purposes. Someone 
uploaded the demo of Maurice Randall’s “The 
Wave” terminal program on Christmas—and it 
has a readme type file. You can find out what it's 
all about by typing: “more wavedemo.txt”. 

Now that we've found the files we want, 
let's grab them, and I'll show the different 
commands used when getting a text and 
binary file. 


Getting Files 

FTP uses different protocols when sending text 
or binary files, so you must tell it which one to use 
whenever you get files. Send the command: 
“ascii”. You'll see a message that says “200 Type 
set to A”, (The A is for ASCII). Type: “get 
wavedemo.txt”, and the system will respond that 
it’s opening an ASCII transfer. You won't see 
much until it finishes the job, but since the text 
file is only 366 bytes, it won't take very long at all 
and you'll see something like: 


local: wavedemo.txt remote: wavedemo.txt 
200 PORT command successful. 

150 Opening ASCII mode data connection for 
wavedemo.txt (366 bytes). 


When finished, it will show: 


226 Transfer complete. 
376 bytes received in 0.18 seconds (2.1 Kbytes/s) 


Nowwe'reready to get the SFX file. Type: “binary” 
and press return. This time the message you'll see 
is “Type set to 1”. The ‘I’ stands for “image”. | 
know, it seems like it should say “Type set to B” 
(as in Binary), but this is Unix where not 
everything appears to make sense. Type: “get 
wavedemo.sfx” and you'll get a message that it's 
openinga binary transfer, andaftera few minutes 
you'll get a message back similar to the one above. 

You can’t hurt an ASCII file by transferring it 
as binary, but you WILL have problems if you 
transfer a binary file using the ASCII protocol. 
Always remember to set the type to binary before 
transferring a program or other binary file. How 
do you know the difference between binary and 
ASCII? Binary files are any that you would load 
and run, such as programs or any files that are 
archived. ASCII files are text files and usually end 
with the letters “.txt’ or..‘doc’, or they have names 
that are dead give-aways like “README”. 

What if you want to get several files at once? 
Easy. We can use the mget command (the ‘m’ 


means “multi”) and a wildcard. For instance, if 


you want the Desterm files shown above, you 
would start by typing “binary”, then “mget 


FTP COMMANDS 


Start an FTP session 
Login as 

Send ident as password 
Change directories 


ftp <sitename> or ncftp <sitename> 
anonymous 

your Email address 

cd <dirname> or <dirpath> 


View directory dir Is Is-al 
w/paging Is -l more 
columns & paging Is -C 

Stop dir list CTRL-c 

Read textfile more <filename> 

Set transfer to ASCII ascii 

Set transfer to Binary binary 

Suppress prompt toggle prompt 


Show progress 

Get one file 

Get multiple files 

Put file on FTP site 

Put multiple files on site 
Quit FTP utility 

Download using Zmodem: 
Download using Ymodem: 
Download using Xmodem: 
Delete files after download 


COMMODORE WORLD 


# (hashmark or American pound symbol) 
get <filename> 

mget <filenam*> or mget <file1 file2> 

put <filename> 

mput <filename> 

quit, exit or control c. 

sz <filename(s)> 

sb <filename(s)> 

xb <filename> 

rm <filename> 


40 


des200*”, Before transferring each file you'll be 
asked “mget des200-1.sfx?”. Answer each prompt 
with the letter ‘y’ for yes or‘n’ for no (ifit displays 
a file you don’t want to transfer). 

Once you're experienced with using Unix 
wildcards you probably won't want to baby-sit 
the process and answer prompts for each file. To 
avoid this before using “mget”, use another 
command called “prompt”. This will turn off the 
questionsand thefiles will be transferred without 
any stops between each file. Another useful 
command is the hash mark (#). The hash lets you 
see what's happening as the files are transferred. 
If you give this command prior to beginning a 
transfer, you'll have something to watch, and an 
indication the system is indeed doing something. 
Both prompt and the hash are toggle commands 
—you turn them on and off by using the same 
command, You need only use these once during 
asession, For example, ifyou're downloading the 
above files and wish to turn off the prompts and 
have it display information during the transfer, 
you would type: 


prompt 


+ 
a 


binary 
mget des200* 


Sometimes getting files via FTP can be extremely 
fast and efficient. Other times it can be a slow 
process. This depends on the speed of your 
Internet providerand how many usersare online, 
along with the FTP sites’ speed, and how many 
other users areaccessingit. Also, alot depends on 
WHERE youareFTPing to. It's best, ifpossible, to 
use FTP sites thatarenearertoyou geographically, 
as thereisa noticeable lag time when transferring 
files from one side of the world to the other. 

We'redonewith using the FTP utility so wecan 
exit it with the “quit” command. Wait a minute, 
Ihearyou saying, “We didn’t download anything 
yet!” You're right, we didn’t, but we will, once 
we're back to using our own system. 


Back “Home” 

List your home directory and you'll see that you 
have the wavedemo.sfx and text file, along with 
the Desterm files. To download the files all at the 
same time using Novaterm’s Zmodem, the 
command is “sz wave* des200*”. For Ymodem 
batch, use “sb wave* des200*”. If you're using 
Xmodem, you'll have to download each file 
individually using the “xb” and typing in the 
individual filenames. You can cheat a bit by using 
just enough of the file name so the system knows 
which one to send, such as “wavedemo.s*”. Once 
you've downloaded the files, if your system has 


Issue 16 


tight restrictions on how much hard drive space 
you're allowed to use, you'll have to delete the 
files from your home directory right away. Ifyou 
don’t have strict limitations, leave the files so if 
you have any problems you can try them again 
without the need to FTP them again. 

Once in awhile you might download a file 
that doesn’t work. It won't dissolve or run, 
and you've tried just about every possibility 
you can think to try. Recently, I was alerted 


that a file on my FTP site at hal9000.net.au 
had a problem. After some searching and 
comparing, I found I'd made a mistake and 
forgot to type the word “binary” before 
“putting” the file on the site. Because of 
this the system assumed it was text and 
anyone who downloaded the file couldn't 
dissolve it. If you've downloaded a bad file 
and know the name of the uploader (or at 
very least the name of the person in charge 


COMMODORE RELATED FTP SITES 


Host: 
ftp.rrz.Uni-Koeln.DE 
src.doc.ic.ac.uk 
rtfm.mit.edu 
cs.dal.ca 
ccnga.uwaterloo.ca 
ftp.cs.tu-berlin.de 
ftp.armory.com 
hal9000.net.au 
nexus.yorku.ca 
ftp.demon.co.uk 
ftp.inf.bme.hu 
ftp.cs.columbia.edu 
plaza.aarnet.edu.au 
flubber.cs.umd.edu 
nic.switch.ch 
ftp.gmd.de 
wilbur.stanford.edu 
syrinx.umd.edu 
ucsd.edu 
ftp.hrz.uni-kassel.de 
cs.dal.ca 
wuarchive.wustl.edu 
frodo.hiof.no 
bbs.cc.uniud.it 


ftp.rz.uni-hildesheim.de 


ftp.funet.fi 
sol.cs.ruu.nl 


oak.oakland.edu 


watsun.cc.columbia.edu 


x2ftp.oulu.fi 


tolsun.oulu.fi 


131.188.190.131 


ftp.funet.fi 


ftp.eskimo.com 


August/September 1996 


Directory: 


/usenet/comp.archives/auto/comp.sys.cbm 
/usenet/comp.archives/auto/comp.sys.cbm 
/pub/usenet-by-group/comp.sys.cbm/main-faq 
/pub/comp.archives/comp.sys.cbm 
/pub/ecbm 

/pub/c64 

/pub/user/spectre 

/pub/cbm 

/pub/Internet-info 

/pub/epm 

/pub/cbm/ 
/archives/mirror1/kermit 
/pub/kermit/c 

/rec/newballistic 
/mirror/kermit/bin 
/if-archive/games/c64 
/pub/emulators/c64 
/rush/systems/c64 
/midi/software/c64 
/pub/machines/vic-20 
/comp.archives/c64 
/mirrors/cpm 

/pub/c64 

/pub/c64 

/pub/c64/ 
/pub/amiga/audio/misc/sid-tunes 
/pub/MIDI/PROGRAMS/C64 
/pub/MIDI/DOC 

/pub/cpm 

/pub2/cpm 

/kermit2/old/c64 

/kermit/bin 

/pub/cbm 

/pub/cross 

/pub/c64 

/incoming/c64 

/pub/c64 

/pub/c64 

/pub c64/POLDI 

/pub/poldi 

/pub/cbm 

/pub/misc/c64 

/pub/kermit/c64 
/u/vvoyager/Novaterm 
/voyager/Novaterm/Deutsche 


41 


of the FTP site) send them Email and let 
them know what kind of problem you are 
having. If the file is bad it can be replaced 
or deleted. 


Reversing the Process—Putting 
Files on an FTP Site 

Sohow DO you put files onan FTP site? I gave the 
clue in the last paragraph. It’s the reverse of 
getting files from FTP sites. First, upload the file 
to your home directory. Start FTP and go to the 
site and directory where you want to upload the 
file. Type “binary” or “ascii” depending on the 
type of file, and then use the “put” command to 
transfer the file to the FTP site. Ifthere’s just one 
file, type “put<filename>”, orifthere are multiple 
files the command is “mput file1* file2*”. Before 
starting your FTP session, typeashort description 
of the file or files and save it to your home 
directory, then put the text file with the 
description on the F'TP site too, 


NcFTP 

NowthatyouknowhowtodoFTP theold fashioned 
“hard” way, I'lllet youin ona nicer utility. It’s called 
NcFTP (pronounced “Nick-F-T-P’), you can use the 
same commands with it as FTP, but this utility 
automatically sendsthe “anonymous” textand your 
Email address as the password for you. It keeps 
track of what sites you've FTP’d to and when you 
use itagain to return to asite it takes you back to the 
same directory youlastaccessed. When transferring 
filesit displays bar-graph that's continually updated 
until the transfer is finished. It also gives an “ETA”, 
or “Estimated Time of Arrival” percentage. You 
start NcFTP by typing “ncftp <sitename>”. If your 
Internet provider has this utility available it will 
start, otherwise you'll receive a message telling you 
that it could not find the utility. After you've used 
NcFTP once, you can start it by typing “neftp” and 
then type “open” once the utility has begun. It will 
show youanumberedlist of FTP sites you've visited, 
and you can type the number item of your choice 
and it does the rest. 


Wrap Up 

Now that you know what FTP is all about, you'll 
be able to use it to get all kinds of goodies. 
Commodore programs aren't the only things 
you'll find on FTP sites that you can use. You can 
download FAQ (Frequently Asked Questions) 
and other text files that cover your interests, and 
you can download graphic images to view, 
Remember too — it’s nice to share. If you have 
PD or shareware, artwork or text files of interest 
to others, share them by placing them on an FTP 
site. 


©) 


COMMODORE WORLD 


GeO 


CREATING DATA FILES 


H-ROGRAMMIS'T 


dy Maurice Randall 


Outside of GEOS, it is a simple matter to create a new file from within a 
program. You begin by sending a command to your disk drive to open a 
new file, and then send the data to the drive to be placed within that file. 
Once finished, you close the file and the job is complete. 

But in GEOS itisa different matter, at least ifit's GEOS type files that you 
are wishing to create. Now, I'm not talking about your actual applications 
that you create using geoProgrammer, I'm talking about having a need to 
create something like a data file while your application is running. As an 
example, when using geoWrite, it creates the data file that you are typing 
your text into, Sooner or later, you will design an application that needs to 
have the ability to create it’s own data files like geoWrite does, or geoPaint, 
geoPublish, ete. 

Wealready know that GEOS files are somewhat different from a normal 
Commodore disk file in that they have a header block attached to them and 
can also be in one of two forms, sequential or VLIR. The directory entry also 
contains additional information that you normally do not see in a 
Commodore disk file. 

In the GEOS kernal, there is a routine called ‘SaveFile’. This is the master 
routine that helps us to create files of whatever type we desire. If you have 
a need to create data files from within your application, this routine will 
help you do so. In the process, though, you will discover some quirks with 
geoAssembler concerning the header block. Just follow along and I will 
show you how to do it in a manner that works. 


The Header Block 

In geoAssembler, there is a directive that is used to create the header blocks 
for your GEOS files. It is described beginning on page 5-50. At times, it will 
seem like this directive is being used to create a mental block, rather than 
aheader block. geoAssembler is very strict with this one. You must be very 
careful how you format the source code in between the .header and .endh 
directives, 

You may have already used these to create the header file that is used 
when you assemble and link an application, but did you know that you can 
also embed these directives inside the source code that makes up your 
application? After all, when your application creates it’s own data files, it 
will need to builda header block for each of those files. That means you will 
need a header block of some sort contained within your application. The 
header blockisone ofthe main requirements ofthe kernal routine ‘SaveFile’. 
Most of the infoitneeds is within this block of data. Don’t get confused with 
these extra header blocks, they are not at all connected to the one that is 
used to create your application. They are an actual part of the source code 
that makes up your application. 


Looking at Savefile 

Let’s take a look at the routine SaveFile before going any further, There are 
only about 3 things required here. First, as already discussed, you need a 
256 byte area of memory that describes the header block. Then you must 
point r9 at this block of memory. In rl0L, you load the desired directory 


COMMODORE WORLD 


42 


page that you would like your data file saved to. Normally this should be a 
zero so that ifthere are any empty spots on the first page, that is where your 
file will go. If not, then the first available slot will get used. The GEOS 
Programmer's Reference Guide states this one incorrectly. It says that a 4 
here will attempt to place the file on page 4 of the DeskTop, but it will 
actually go to page 5. Now, you simply do ajsr to SaveFile and your data file 
is created. 


Now for the Fun Part 

Let's dig into that 256 byte header block again. This is the most important 
thing. It’s got to be right or your data file won't work. In fact, you might not 
even get geoAssembler to assemble it correctly inside your application to 
begin with! 

Always remember, that whatever goes in between the header and .endh 
directives will end up being exactly 256 bytes long. If the code you place 
there is less than this, geoAssembler will make up the difference with 
additional zero bytes. That way, you don’t need to count what you place 
there. But what you ‘do’ place there better be in the correct order, or 
geoAssembler will make you do it over again until you get it right. 

You can copy the example I have in the sidebar here and then make only 
the changes you need for your own purpose. Be careful not to change the 
order or the length of each item. 

Let's look at each item in detail. I've begun by placing a label, 
‘StartOffleader’, at the start of our header block. You can change this to 
your liking. This can be used to make reference to any part of the header 
block once our application is running. If we want to change the comment 
that will appear in the DeskTop’s info box, we can access that as 
StartOfHeader+160, 

I should point out one of geoAssembler’s limitations here. There is an 
equate for that offset to the comment area called ‘OFF_GHINFO_TX1". 
But I've run into problems at times when equates are used along with 
labels. Sometimes it seems to work and other times it doesn’t. If 
StartOfHeader+OFF_GHINFO_TXT is referenced from within the same 
source code file, it might work. But if from a different file, then geoLinker 
must resolve the address and it may or may not do it right. You might get 
an unresolved error message when this happens. The cure at this pointis to 
use the actual value, such as 160, instead of the equate. This was one of the 
bugs that was supposed to be fixed in geoProgrammer 2.0, but was never 
released. 

Now we come to the header directive. This let's geoAsscmbler know 
how to assemble the code up to the .endh directive. You will end up 
with 256 bytes between these two. The first two bytes of the header 
block are normally $00,$FF. But for SaveFile, we need to have a pointer 
here to the filename that our data file will be given. Here's another 
assembler bug. No matter what you put here, it will always end up with 
$00,$FF once it is assembled. But go ahead and put a pointer to a 
filename here anyway. It can be a reminder for our own purpose. I'll 
get back to this shortly. 


Issue 16 


The next two bytes describe the size of the icon. This never changes and 
is always 3 and 21. A photo scrap is then placed here. And no matter what 
you put here, only the first 63 bytes ofimage data will be used for the icon. 
But to be safe, always cut outa scrap from geoPaint thatis 24 pixels wide and 
24 pixels high. The assembler will ignore the lower 3 rows of pixels as it 
generates your header block. 

Next we have 3 bytes for the Commodore filetype, the GEOS filetype and 
the structure type. For our example, we are creating a USR file, it isa GEOS 
application data file, and it is ofa GEOS sequential structure. (We will get 
into VLIR data files next issue.) 

Next comes 3 memory pointers. The first one points to the start of the 
data that we wish to have placed in the file. Next is a pointer to the last byte 


of the data. Our example is actually going to save an entire region of 


memory that is 1000 bytes long. Your own application can alter these 
pointers as needed. The third pointer is not important for a data file, but 
would be if our application was creating another application file. This 
would be the location that would be called when the file is first loaded. A 
data file is not run, so whatever is placed here is unimportant. 

Next comes the permanent name for the data file. This one is up to you 
however you want to name it, Each data file you create will contain the same 
permanent name. This is how your application can have only it’s own data 
files displayed ina file requestor box. geoWrite does this by namingit’s files 
‘Write Image’. This has nothing to do with the filename that is in the 
directory. GEOS can examine this permanent name and single out only 
those files from the directory. 

The permanent name must always be exactly 12 characters long. Ifit is 
shorter, then add additional spaces to bring it to 12 characters. This should 
be followed by a version number, as in the example and then 4 zeroes. For 
a data file, the 4th zero is not necessarily important, but it would be for 
other types offiles, That byte identifies the type of computer system the file 
is intended for. 

The next 20 bytes is for the author's name. Again, it is not needed for a 
data file to have an author's name, Normally, an application would have 
one, but this data file will most likely be partially created by the person that 
is using your application. So, it is purely up to you what to put here. But | 
have always found it to bea good idea to always put 19 printable characters 
plus one zero byte here. Fill those 19 bytes with spaces or with your own 
name padded with spaces if you'd like, just don’t put all zeroes there. 

Next comes the name of the parent application. In our example, you see 
thename‘OurApp_ V1.0°. This wouldactually be the permanent name that 
would be listed in our own application's header block. If the user double- 
clicks ona data file, the DeskTop looksat this name and finds the application 
that contains this in it's permanent name string. It then knows which 


application to load. If you do not want to make your data files capable of 


being loaded in this manner, then fill these 16 bytes with spaces, Follow this 
also with 4 zero bytes. 

Next, a simple .block 23 will make the assembler generate 23 zero bytes. 
This brings our header block up to a total of 160 bytes. Normally, the 
comment we want to appear in the info box would come next. But anytime 
I've used the .header directive in this manner, the assembler always gives 
meanerrorifI placeacommenthere. So, instead, we have toend our header 
at this point with the .endh directive. The assembler will put zero bytes in 
the block until it has filled it up to the 256th byte. 

Once our application is running, we will have to manually move the 
desired comment into the header block in memory before using SaveFile. 
Also, since the assembler put a $00,$FF in the first two bytes, we have to 
redo that also. In fact, this should be done each time Savefile is called. 
Otherwise, SaveFile will look at the address at $FF00 for a filename. 


August/September 1996 


43 


Here's the routine that will do all this for us: 


LoadW r8,#datainfo 

LoadW rl,#(StartO0fHeader+168) 
Idu #r8 

Idy #r1 

jsr CopyString 

LoadW StartOfHeader,#dataName 
LoadW r9,#StartOfHeader 

LoadB rl@L,#0 

jsr SaveFile 


You will then have a data file created on the currently open disk. One of the 
things you will want to keep in mind is the part in the header block that 
identifies the memory locations of the data to be saved. If this area gets 
relocated or changes in size, you will have to change these pointers 
accordingly before calling SaveFile. Also, you will notice that added some 
additional zeros to the filename at dataName. This way, we have a full 17 
byte location allocated for a 16 character filename plus a null terminator. 
Your application might havea need for creating more than one data fileand 
so the filename here would be changed accordingly. 

If you follow these rules | have outlined, you should not have any 
problems. You can deviate slightly with some things, but watch out ifyou 
do. The assembler just might give you errors, Next time, we will find out 
how to alter the data that has been saved in a data file and also talk about 
creating a VLIR data file and working with it. 


© 


StartOfHeader: 
-sheader 
.word dataName 
-byte 5 
-byte 21 


[Place a photo scrap for an icon here] 


-byte $88/USR 
-byte APPL_DATA 
-byte SEQUENTIAL 
.word datafrea 
-word datafrea+1668 
.word datafrea 
:byte “PermName 


;CBM file type. 

;GEOS file type. 

;GEOS file structure type. 
;start of data. 

;end of data. 

jinit address. 
v1,0”,6,0,0,$08 


-byte “Maurice Randall ”,8 
-byte “Ourfapp U1.6",6,0,6,8 
-block 23 
.endh 

dataName: 


-byte “SampleData”,0,6,0,0,0,0,0 
datalinfo: 
-byte “This is a sample from” 


-byte “Commodore World magazine.”,6 


datafrea: 
.block 1888 


COMMODORE WORLD 


Previously, we have used test-and-branch code in an intuitive manner. 
When we said, “CPX #$06 .. BEQ $2055”, we meant “Compare the X 
register with a value of 6; Branch if Equal to address hexadecimal $2055". 
It was sensible and natural. 

But the two instructions are separate and distinct. What links the result 
of the CPX (Compare X) to the BEQ (Branch Equal) instruction? Answer: 
the condition is recorded in the Processor Status Register. The CPX 
instruction marks its results into this register, and the BEQ tests part of the 
status register to see if a branch is called for. In particular, the BEQ 
instruction tests a bit in the register called the Z flag; but perhaps we're 
getting a little ahead of ourselves. 

Having an instruction leave “condition bits”, to be tested later, has 
interesting side effects. For example, the two instructions don’t need to be 
consecutive. They could be separated, providing that the intervening 
instructions don’t mess with the relevant status flags. Here’s another 
possibility: if needed, we can carefully save the results of an operation— 
that is, save the Processor Status Register contents—and bring back the 
results later for testing. We'll explore both of these circumstances later. 


The Four Flags 
As Figure 1 shows, the Status Register has four flags which can be tested by 
means of “Branch” instructions. There are eight Branch instructions, and 


each of them tests one of the four status flags to see if it is on (set) or off 


(clear). Two interesting things to note about the 6502/6510 branch 
instructions: there's no unconditional branch; anda branch can jump only 
a short distance, somewhat over a hundred bytes forward or backward. 

Some instructions affect no flags at all; some affect only one or two; and 
a few instructions (mostly arithmetic) can influence them all. We'll deal 
with the busiest flags first. 

Z- The Z (or Zero) flag is a busy flag whose condition is affected by every 
instruction that modifies the contents of a data register. Thus, a Load 
instruction (LDA, LDX, LDY) will set the condition of the Z flag depending 
on whether or not the value loaded is zero or not. Note that the Store 
instructions (STA, STX, STY) do not modify registers, and thus don’t affect 
the Z flag, or any flag, for that matter. After a comparison (CMP, CPX, 


CPY), the Z flag signals whether the compared values were equal or not. If 


the Z flag is clear, BNE (Branch not Equal) will branch; if the Z flag is set, 
BEQ (Branch Equal) will branch. 

N - The N (or Negative) flag is also affected by any instruction that 
changes a data register, so it’s another busy one. The term negative needs 
more explanation than I can give here: I'll just say that the N flag tracks the 
highest bit of the result; ifthe high bit of the data is set, the N flagis set, and 
vice versa. After a comparison, the N flag takes on a fairly complex status; 
don’tuseit for greater-than tests (use the C flag instead). Ifthe N flagis clear, 
BPL (Branch Plus) will branch; ifthe N flag is set, BMI (Branch Minus) will 
branch. 

C- the C (or Carry) flag is not affected by simple data operations such as 
loading a register, so it’s less busy that the previous two condition flags. Part 


COMMODORE WORLD 


44 


PROCESSOR STATUS 
REGISTER FLAGS 


of the C flag’s usage is with arithmetic. After an addition (the instruction is 
ADC, Add with Carry), the C flag is indeed a true carry indication: it means 
there wasn’t room to hold the sum within a single byte.If you have a 
multiple-byte number, you'll just move along and add the carry into the 
next column (as we do with decimal addition). If all you've got is a single 
byte, there’s no room for the result and you have an “overflow”. The C flag 
isalso involved in subtraction, where its role is that ofan “inverted borrow” 
(don't worry about that one too much until we get to math stuff). With Shift 
and Rotate instructions, the C flag holds the bits that pop offthe end of the 
data byte. Perhaps most importantly: after a comparison operation, the C 
flag is set if the register is greater than or equal to the value it’s being 
compared to. 

The C flag may be directly set or cleared by using instructions SEC (Set 
Carry) and CLC (Clear Carry). Ifthe C flagis clear, BCC (Branch Carry Clear) 
will branch; if the C flag is set, BCS (Branch Carry Set) will branch. 

V-the V (or Overflow) flag is affected only by addition and subtraction, 
and by the curious BIT instruction (whose main purpose is to test I/O chip 
status).Even with ADC and SBC, the V flag is usually only meaningful when 
the computer is dealing with signed numbers. A sidenote: although this 
won't happen in your computer, the V flagcan be hooked up to be triggered 
by a hardware signal. You're not likely to use the V flag much.The V flag 
may be directly cleared by using instruction CLV (Clear overflow).If 
the V flag is clear, BVC (Branch overflow Clear) will branch; if the V 
flag is set, BVS (Branch overflow Set) will branch. 


Hoisting the Flags 
Consider the following code: 


2000 ADC #$@07 ;add 7 to the A register 

2002 CPX #$@2 ;compare the contents of X 
jto 2 

2004 LDY #$0@ ;load @ into Y 

2006 STA $2345 ;store the contents of A 
ginto $2345 


These flags cannot be tested by branch 
instructions to alter program flow 


Decimal Mode 
Interrupt Disable 


(BPL,BMI) Negative 
(BVC,BVS) Overtlow 


Carry — (BCC,BCS) 

Zero/Equal(BNE,BEQ) 
These flags can be tested by 

branch instructions to alter program flow 


Figure 1: The bits of the Processor Status Register (P) sometimes control 
the way the computer works, Four of the bits (N, V, Z, and C), or flags as 
they are often called, report the results of recent operations, and can be 
“tested” by the various branch instructions to alter program flow. For 
example, BCC (Branch if Carry Clear) will cause program operation to 
change to a new address if the C flag contains a zero. 


Issue 16 


Although we won't know the contents of the registers after this code has run 
(except register Y, which will contain zero), we can analyze how the 
conditional flags have been affected. 

The first instruction, ADC, affected all four flags: N, Z,C, and V. 
But N, Z,and C will be changed by the next instruction. The second 
instruction, CPX, affected flags N, Z, and C. The Z flag will be set 
if the X register contains a value of two (an equals condition was 
found); the C flag will be set if the value in X is two or higher. N will 
be affected, but not in a generally useful way. However, the 
following instruction is going to modify the N and Z flags once 
more. The third instruction, LDY #$00, won't affect the V or C 
flags. But the Z flag will be set (we've placed a zero in the register) 
and the N flag will be clear (the high bit is not set).The last 
instruction, STA, affects no flags at all. 

So our situation is this: V was last affected by the ADC instruction; C was 
influenced by the CPX; and the Nand Z conditionsare the result ofthe LDY 
instruction. 


Quick Trick: Pushing the Status Register 

We mentioned that the status register could be put away and brought back 
for checking at a later time. We do this with a PHP (Push Processor Status) 
to save to the stack, and PLP (Pull Processor Status) to bring it back. 

Here’s a useful application. If you are copying a file, say from disk to the 
printer, your program needs to check the input stream for an end-of-file 
condition. That condition will be logged in the status word ST, which is 
located at address hex 90 on the VIC-20 and subsequent machines. (On 
earlier machines, you'll find it at $96). 

But the program needs to check the end-of-file condition AFTER the 
outputis sent... at which time, the contents of ST have been changed by the 
output activity. We need to save the end-of-file indicator as it appears when 
we read a byte; but take action on its condition after the byte has been 
written, Do you see the “deferred decision”? 

Here’s the quick machine language code. Later, the BASIC program will 
place the code at address $2000 (not an ideal site, but almost universally 
available): 


LOOP: 
input stream to 
file 1 (which has 


been opened) 


;connect 
;logical 
jalready 


;Read a byte into the A 
jregister 


LDX $90 ;Read the status byte (at 
;this time status byte will 
;be @ if not end of file 
sand thus, the Z flag would 
jbe set) 

PHP snow, that Z flag is safe 
jon the stack 

PHA slet’s put our input byte 
jthere, too 

JSR SFFCC ;disconnect input stream 

LDX #2 

JSR $FFC9 ;connect output stream to 
;logical file 2 

PLA ;bring back the input data 


;byte 


JSR SFFD2 stransmit it 


August/September 1996 


45 


JSR S$FFCC ;disconnect output stream 
PLP ;bring back the Z flag; if 
BEQ LOOP ;it’s set, get more 


Here's some Basic code to do the whole job: 


100 : 162; 2532, 198,255 ;:32;,228;, 255 
110 DATA 25 


120 


166,144,8,72 


162,2,32,201,255,104,32,210,255 


13@ 32,204,255,40,240,226,96 

200 FOR J=8192 to 8222 

210 T=T+) 

220 ’ 

23@ NEXT J 

240 IF T<>439@ THEN STOP REM DATA ERROR 


30@ OPEN 1,8,3,“DATAFILE” 

310 OPEN 2,4 REM OUTPUT TO PRINTER 
320 SYS 8192 

33@ CLOSE 2 

340 CLOSE 1 


Put the name ofa sequential file into line 300 (I've used “DATAFILE”). You 
may change line 210 to output wherever you desire: OPEN 2,3 would send 
to the screen, for example. If you have a pre-VIC-20 computer, you'll need 
tochange the value 144 on line 110 (and modify the checksum value on line 
240); but I'll leave that as an exercise, 


$) 


TABLE 1: INSTRUCTIONS AFFECTING FLAGS 


Affects Z, N, C, and V 
ADC - Add with Carry 
PLP - Pull Processor status register 
RTI - Return from Interrupt 
SBC - Subtract 


Affects Z, N, and C 
ASL, ROL - Arithmetic shift/rotate left 
LSR, ROR - Logical shift/rotate right 
CMP, CPX, CPX - Compare A, X, Y 


Affects Z and N 
AND, EOR, ORA - Logical AND, Xor, OR 
DEC, DEX, DEY - Decrement memory, X, Y 
NC, INX, INY - Incrememt memory, X, Y 
LDA, LDX, LDY - Load A, X, Y 
PLA - Pull A from stack 
TAX, TAY, TXA, TYA - Register transfers 
TSX - Transfer Stack pointer to X 


Special 
BIT (N, V, Z) - Test bits at address 
CLC, SEC - Clear/Set Carry flag 
CLV - Clear overflow flag 


Affects no conditional flags 
BCC BCS BEQ BNE BMI BPL BVS BVC - all Branches 
BRK - Break 
CLD, SED - Clear/Set decimal mode 
CLI, SEI - Clear/Set interrupt lockout 
JMP, JSR - Jump, Jump to subroutine 
NOP - No operation 
PHA, PHP - Push A, Push procesor status regiser to stack 
RTS - Return from Subroutine 
STA, STX, STY - Store A, X, Y 
TXS - Transfer X to stack pointer. 


COMMODORE WORLD 


FeEniPHe&RAtL. 


Before the VIC-20, Commodorecomputers talked 
to peripheral devices using a parallel bus called 
the JEEE-488 or GPIB, Subsequently, this was 
replaced by a serial bus. The principles of the two 
were the same. 

Some of what follows may be differ slightly if 
you're using some form of “fast bus”, such as 
JiffyDOS. But the description will be generally 
valid. 


About the Bus 

A bus may be loosely defined as a collection of 
wires that connect several different devices. The 
Commodore bus design connects the computer 
with a number of peripheral devices, mostly disk 
drives and printers. The original (parallel) design 
was based on the GPIB (General Purpose Interface 
Bus) designed by Hewlett-Packard, later adopted 
as international standard IEEE-488. 

Hewlett-Packard’s objective was to allow 
instruments to be linked together, perhaps with 
a computer included. There was no central 
control: any device could be made master of the 
bus and command the others; the device might 
later give up control in favor of another. There 
were also polling modes defined, where the 
controller could send out a query, asking if any 
device had anything interesting to report. 

The first Commodore PET and CBM computers 
kept faithfully to the Hewlett-Packard design, In 
fact, some users connected GPIB instruments to 
these early computers for process control and 
monitoring. Commodore deviated slightly in a 
few areas. The computer used an economical 
edge connector, rather than the more elaborate 
(and expensive) standard IEEE-488 connector. 
Commodore decided that the computer would 
be the only controller on the bus. Features suchas 
polling were rarely used (an early Commodore 
acoustic modem was the only device that 
recognized polling). Commodore peripherals 
were simplified, but made less efficient, by having 
them lock out the bus when they were busy, 

In the pioneer days of the first home 
computers, Commodore's bus design was 
sophisticated and brilliant. Over the years, 
though, the rest of the industry moved toward 
discrete connections: the Centronics interface 


COMMODORE WORLD 


for printers, RS-232 ports for modems, and 
dedicated controllers for disk drives. The switch 
to the serial bus slowed things down, and 
Commodore started to be left behind, But give 
our guys credit: in those first days when no 
standards existed, Commodore introduced a 
remarkable design with their peripheral bus and 
intelligent devices. And todays mainstream 
computer industry seems to be about to 
rediscover the concept of a peripheral bus. 


How the Wires Work 
This description applies to both the IEEE-488 
and theserial bus. All wires connect toall devices. 
The bus has no “direction”—every device, in 
principle, can place a signal on a wire which will 
be seen byall devices. To bea little more technical: 
every signal wire on the bus is normally held high 
at around five volts (logic 0 in negative logic); but 
any device can pull the voltage Jow to ground 
(logic 1), and this changed level will be seen by all 
devices. In fact, several devices could be pulling 
the voltage low; only one is needed to do the job. 
Because “everything connects to everything”, 
a bus can be extended by means of Y connectors. 
Usually, the serial bus uses the two-connector set 
on disk drives to continue the hookup to other 
devices. The IEEE-488 bus uses a male/female 
combination connector that allows extra cables 
to be easily hooked in. 


OOo 


Computer and Peripheral Devices 


Figure 1: The computer and its peripherals are 
connected by a common bus. All wires connect 
to all devices; the computer could be anywhere 
in the chain. 


Information (data) flows over the data wires: 
there are eight of these on the IEEE bus, but only 
one on the serial bus. To help the data move, 
there are additional control wires—often called 
handshaking lines—that help the timing of the 
data and acknowledge data receipt. These are 
carefully planned: only one device can send at a 
time, but several can be receiving data 
simultaneously. 


46 


THE PERIPHERAL BUS 


This capability to broadcast data to several 
devices is important. It’s especially needed for 
device selection, where the computer calls all 
devices and instructs one to stay connected, the 
others to drop off the line for the time being. 

The attention (ATN) line is used for this 
selection. When the ATN line is pulled low, all 
devices listen to see if they will be involved in the 
following data transmission. 


The Selection Mechanism 

When ATNisset TRUE (low) by the computer, all 
other devices start to watch for incoming data 
signals. The computer sends one or more 
characters, which might mean such things as 
“device 4: listen” (one character); “device 8, 
secondary address 2: talk” (two characters); or, 
“device nine, secondary address 5: open file DATA 
for reading” (about six characters). 

The major commands that are sent are TALK 
and LISTEN, which are bundled with the 
corresponding device number. The device 
numberis specifiedin the lowest 5 bits (0 through 
4) ofa byte (see Figure 2a) and can containa value 
from 4 to 30. While these five bits could actually 
holda value of 0 through 31, the values 0 through 
3and 31 all have special meanings. Bits 5 and 6 of 
the same byte are used to indicate LISTEN and 
TALK, respectively. 


TT [ie J tevice Number 30) | 


Figure 2a: Device selection byte. The first byte 
sent after ATN has been pulled low. T controls 
TALK; L commands LISTEN; Device number 
31 controls UNTALK and UNLISTEN. 


SNCS) 


Figure 2b: Secondary address control byte. 
Optional; sent after the device selection byte. 
Control codes (in binary): 

1111 - OPEN 

1110 - CLOSE 

0110 - data 


To tell device 4 to listen, a value of $24 
(hexadecimal) is sent. This presents a bit pattern 
of 00100100. Device 4 would be asked to TALK 
with a value of $44 (hex) although since that 
device is usually a printer, it’s not likely to say 
much. The reverse commands, UNTALK and 


Issue 16 


UNLISTEN, typically carry a device number of 


31, which means that UNLISTEN sends hex $3F, 
and UNTALK sends hex $5F. 

The TALK or LISTEN command may be 
followed by a secondary address signal. This byte 
will carry not only the secondary address (from 0 
to 15), but the high nybble will signal whether 
this transmission will open a file, close a file, or 
transport data. OPEN is signaled by ahigh nybble 
of $F (hex), CLOSE by a high nybble of $E, and 
other data activities by a high nybble of $6. So, to 
ask device 8, secondary address 3 to send more 
information from an already open file, the 
computer would send two bytes while ATN is 
pulled low: $48 and $63 (hex) . The first byte 
($48) would mean “talk, device 8”, andthe second 
($63) would be “data, secondary address 3”. 

A file name may be sent if the operation is an 
OPEN, but that will happen after ATN is turned 
off, so the information classifies as regular data. 


The Byte Exchange 

The mechanism is the same whether or not the 
ATN mode is active. The bits are transmitted 
eight at a time, over eight wires, on the IEEE-488 
bus. On the serial bus, the bits go over a single 
wire, one at a time, with a “clock” line signaling 
that each bit is ready. After a byte is sent, the 
sender waits for an acknowledgement. 

The acknowledgement system has to be 
planned carefully, since there may be more than 
one receiver. On the IEEE bus, the 
acknowledgement is sent with a signal on the 
NDAC (“Data Not [yet] Accepted”) line. As long 
as any listening device holds this connection in 
the TRUE (low) state, the byte transmission will 
be considered as “not complete”. With the serial 
bus, it's done in a trickier way: the receiving 
device pulls the data line TRUE (low) to 
acknowledge that a byte has been received; later, 
when all receiving devices have released the data 
line to FALSE (high), the next byte can be 
transmitted. 

There needs to be a way for the talker to signal, 
“This is the end of the data”. The signal is most 
often used to indicate the end ofan incoming file. 
On the IEEE-488 bus, a separate line (EOI, for 
“End or Indicator”) is used. On the serial bus, the 
condition is signaled by an additional handshake 
before the last byte is sent. 


Tracking Bus Events 
Let’s try to follow the actions on the bus when the 
following three Basic statements are executed: 


OPEN 1,4 
PRINT#1,"HELLO" 
CLOSE 1 


August/September 1996 


OPEN 1,4: The computer sends 
NOTHING to the serial bus. If the Basic 
statement had contained a secondary 
address or a file name, then the bus would 
have been opened and commands and data 
sent. As itis, the computer simply makes a 
note in its internal file tables. 

PRINT#1,"HELLO": This takes place in three 
steps. First, the computersignals “Device 4, listen” 
by turning ATN onand sending one byte, hex 24; 
then ATN is turned off. Device 4 is now in the 


IEEE-488 Connector 


211109 8 7654321 


24 23 22 21 20 19 18 17 16 15 14 13 


PET/CBM IEEE-488 Port 


7 8 9 10 11 12 


TABLE 1A: IEEE-488 Bus Pinouts 


DIO1 
DIO2 
DIO3 
DIO4 
EOI 
DAV 
NRFD 
NDAC 
IFC 
SRQ 
ATN 
GND 
DIOS 
DIO6 
DIO7 
DIO8 
REN 
GND 
GND 
GND 
GND 
GND 
GND 


Data Input/Output Line#1 
Data Input/Output Line#2 
Data Input/Output Line#3 
Data Input/Output Line#4 
End or Identity 

Data Valid 

Not Ready For Data 
Data Not Accepted 
Interface Clear 

Service Request 
Attention 

Chassis ground (cable shield) 
Data Input/Output Line#5 
Data Input/Output Line#6 
Data Input/Output Line#7 
Data Input/Output Line#8 
Remote Enable 

DAV Ground 

NRFD Ground 

NDAC Ground 

IFC Ground 

SRQ Ground 

ATN Ground 

Data Ground 


= 
COONOUhWN — 
OONOORWND — 


— 
_ 


12 
A 
B 
Cc 
D 
& 
F 
H 
J 
K 
L 
M 
N 


TABLE 1B: Serial Bus Pinouts 


SRQ 
GND 
ATN 
CLK 
DATA 
RESET 


Serial SRQ in 
System Ground 
Serial ATN (attention) 
Serial data clock 
Serial data 

Resets all devices 


47 


“listen” mode, while all other connected devices 
are deaf. The second step is to send the “HELLO” 
data: the characters go out to the bus one at a 
time. Because of the way BASIC works, a RETURN 
character will also be sent. Finally, the ATN line 
goes on again, and an UNTALK signal is sent to 
the bus. All devices are effectively offline now. 

CLOSE 1: The computer notes that logical 
file number 1 does not have a secondary 
address associated with it. NOTHING goes to 
the serial bus, but the file entry for logical file 
1 is scrapped. If the file did have a secondary 
address, the device would have been selected 
and the CLOSE signal sent. 


That CMD Command 
No, we're not talking about the company, but 
about the BASIC command CMD. Here’s what 
CMD does: it sends a LISTEN to the device 
concerned, and then leaves the bus wide open. 
At the same time, anything that would 
normally be directed to the screen will be 
redirected to the bus. 

So if we want to get a hard copy of a BASIC 
program, we might type the sequence: 


OPEN 4,4: CMD 4: LIST: PRINT#4 : CLOSE4 
A quick rundown on what the commands do: 


OPEN 4,4: as before, nothing goes to the bus, 
but an entry is made in the computer's “active 
file” list. 

CMD 4: LISTEN is sent to device 4, and 
the bus is left open. Any output that 
normally would go to the screen will be 
redirected to the bus. The printer just sits 
there and listens for data. 

LIST: The program listing would 
normally come to the screen, But since it’s 
redirected, it flows out to the open bus, 
where it will hopefully be printed. The bus 
remains open. 

PRINT#4: The three steps: send LISTEN; 
senda RETURN character; send UNLISTEN. 
That last item is the one we want: it closes 
the bus, and restores output to the screen. 

CLOSE 4: No bus activity. The file is 
removed from the computer's “active file” list. 


Conclusion 

The two bus systems, although mechanically 
different, use the same logic to communicate 
between computer and device, At some future 
time, we might go into details of the serial bus 
signals and timing. 


%) 


COMMODORE WORLD 


SASiC 


INS TING TS 


Last issue we looked at fractals from the point of view of self-similarity. 
Triangles within triangles, leaves within leaves. This month, we continue 
our look at fractal objects, but in the area of dynamic systems. Although 
there area few definitions for the word dynamic, the one we are concerned 
with here refers to a continuously changing system, An asteroid in the far 
reaches of space is nota good example ofa dynamic system, buta pendulum 
is. One simple example of a dynamic system is found on your calculator. 
Punchin thenumber 1.1,andpressthe squaring key. Eventually, itoverflows, 
but not before you see a wild progression of numbers, each depending on 
the previous input, which was the result of the input before. 

Dynamic modeling and equations are a means of analyzing the real 
world, If something exhibited X*X growth, pressing the square key on a 
calculator would model it exactly, and allow someone to make forecasts. 
But as in the old joke ‘you can’t get there from here’, there is no direct path 
for answers. To estimate what the answer is after the seventh keypress, you 
have toenter the 1.1, and press seven times. This is an example of sensitivity 
toinput. Looking at the example of the calculator again, I can enter 1.1, and 
press the square key. Along the way to overflow, | notice the number 
2.14358881, which I note down. Later, in repeating the sequence, | figure 
I'll save time and a few keypresses by just entering 2.14 instead of 1.1. The 
result? By the time I overflow, the difference between this new pattern and 
the older one is 65%. Rather than an error of 3/1000 remaining small, it 
grew surprisingly large. Even if entered the full number 2.14358881, there 
would be a variation eventually (the display is still not exactly the same as 
the number stored in the calculator). ‘This extreme sensitivity to input 
means | can’t repeat the sequence exactly without starting from the 
beginning. 

This was the problem experienced by Edward Lorenz, a man who later 
went on to work on Chaos theory, When he was a meteorologist, he felt it 
was possible to predict the weather with equations. After coming up with 
amodel that he felt satisfactorily reflected the weather, he then proceeded 
to rerun it from a later point in the simulation (as in the example with the 
calculator). Although the numbers were only off by thousandths from the 
computer's numbers, the small error quickly changed the results wildly. It 
was this problem of small effects having a large influence that is reflected in 
the phrase ‘butterfly effect’—since small effects make such a difference in 
the weather (as well as other dynamic systems) it might well be that the flap 
of a butterfly’s wings could start a hurricane. 

This same sensitivity to input is at the core of fractal art. Two adjacent 
points on the screen could be different colors, representing different results; 
the points may differ by only small fractions, but the dynamic equations 
they represent are sensitive to input, leading to the differences. There's no 


COMMODORE WORLD 


48 


DYNAMIC FRACTALS 


Program listings provided in this 
article are for the C-64 or 
C-128 in 64 mode. 


equation we can use to enter “Thursday the 10th of March” and get back 
“sunny, mild”, but with the C64, we can explore the dynamic equations that 
form the basis of much of the fractal artwork you see today. 


Complex Ways of Looking at Things 

When I press the square key, the number 1.1 moves toward infinity. 
Likewise, all numbers above one do the same (and for negative numbers, 
those less than minus one). And between one and minus one, all numbers 
move toward zero. We can get a visual feel for this behavior by plotting the 
results onaline. For every point we test, we mark itblack ifit goes toinfinity, 
red ifit goes toward zero, and white ifit heads nowhere. (one and minus one 
are the only examples of the latter). The line we draw would soon bealength 
of black, with two white dots, anda piece of red in the center. Although not 
very interesting, it does show with one picture the dynamic system that is 
our calculator’s squaring key. 

But how do we get all those pretty pictures in books on fractals? They 
obviously don’t use a line. What they do is model different dynamic 
systems from different views. But the one thing they have in common is 
their use of the complex plane to plot results. 

For those who are in need of a refresher, the complex plane is a two- 
dimensional representation of complex numbers. And what are complex 
numbers? They are numbers that contain both a real and an imaginary 
part. Imaginary is the unfortunate term applied to numbers that are 
multiples of the square root of negative one. Since there is no real-world 
example of a square root of a negative number, ‘imaginary’ seemed to fit. 
Now however, I'msureit only serves to make mathematics more confusing. 

The rules for imaginary numbers are simple—let the letter i represent 
the square root of minus one. Then all imaginary numbers are multiples of 
this value. The square root of -16 is 4i, -25 is 5i, and so on. Multiplying two 
imaginary numbers resultsin the i's being multiplied as well, leaving minus 
one; 20i* 15i=-300, and 3i*7i=-21. 

Real numbers and imaginary numbers are linked in mathematics. A real 
number can have an imaginary part, and vice versa. Because i cannot be 
reduced further and combined with the real part, they arejoined witha plus 
symbol: 


2.34451 
042i 
15.440 


Asin the examples above, ifanumber is missing an imaginary ora real part, 
that coefficient is zero. 


Issue 16 


The C-64 does fractals using FRACDRAW.BAS ® 


Displaying these numbers is where we get the graphs for fractals. By 
convention, the imaginary part is along the Y axis, with the real part plotted 
along the X axis. The result is that a number gains a two-dimensional 
quality. For example, 5+2i would be a point placed at X=5 and Y=2. 
Likewise, the point at X=3, Y=4 would be the complex number 3+4i. 


Julia and His Sets 

Now we have the tools to discuss fractals. In the first quarter ofthe century, 
a mathematician named Gaston Julia was examining the dynamics of 
complex numbers. Unlike our little graph of the calculator square key 
squaring complex numbers is much more interesting. Take for example: 


2 + 3i 
x7 + Si 


As in polynomial math, the result would be each part of the top multiplied 
by each part of the bottom: 


The i*i resulted in minus one, leaving : 


14+16i1+211+24*i*1=14+371-24=-10+37i 
Working with complex numbers, Julia eventually settled on a rule that 
would result in an interesting system: 


1) take a number from the complex plane, z, and square it 

2) add a complex number constant c to the new value of z 

3) repeat steps one and two with the new value of z, until you're sure it’s 
going toward infinity or not 


Step three, testing for infinity, isn’t as awkward as it sounds. Ifa complex 
number's absolute value goes over two, it is destined for greatness. This 


output 


zreal=x/160*2*rangex-rangex 
part of point 
zimag=(1-y/200) *2*rangey-rangey 
imaginary part of point 


zimag+creal 
empb=2*zreal*zim 
zreal=tempa:zimag=t 
into z 
count=count+1 
rem test z if heading for 
if count done 
sqr (zreal*zreal+zimag*zimag)<2 an 
then 9@ 
14@ rem here plot color to x,y based 
Size of count 
15@ next next 


on 


August/September 1996 


49 


solves one problem, butadds another; whatisa complex number's absolute 
value? Itis the distance from the origin (complex number 0+0i) to the point 
in question. Looking ata graph, it would be the hypotenuse ofa right sided 
triangle of height Y (the imaginary part) and length X (the real part) , or the 
square root of (Y*Y+X*X). 

With all these details in place, let’s look at the code fragment given in 
FRAGMENT.BAS. This routine squares a complex number and adds a 
constant. It repeats this up to 31 times (line 130) or until the absolute value 
is greater than two. |fit passes this limit, a color is plotted on screen at that 
point, representing how long it took to fly off. Typically, black is for the 
quick flyers, and white is reserved for those that never fly away (at least after 
testing here 31 times). 

Lines 90 and 100 do the squaring. From the earlier example, multiplying 
each complex number results in four multiplications. Adding the constant 
adds another operation, These lines are a simplification of the product of: 


AG*i) +(CREAL+CIMAG) 


In displaying fractals, two colors are rarely used—much of the interest 
comes from the boundary, as numbers more quickly head toward infinity. 
Using COUNT in the example above, up to 31 different shades could be 
used; for the C64, only two (high resolution) or four (medium resolution) 
are available, so scaling is done. 


Viewing Gaston’s Discovery 

The final program for fractal drawing is FRACDRAW.BAS. Medium 
resolution is used, giving four colors and a better look to the output. The 
program also makes heavy use of machine language for speed. Withit, a full 
screen fractal can be displayed in under four hours, depending on 
complexity. [Note: FRACDRAW.BAS has been modified to add optimization 


for SuperCPU users, reducing drawing time down to about half an hour, These 


changes will not affect computers that are not SuperCPU-equipped. -Ed.] 

Here are some notes concerning the program. Firstly, lines 135 and 140 
cannot be moved. To simplify the machine language, I had the routine grab 
information from the first five variables in memory. The CLR at line 135 
guarantees the variables at line 140 are the first to be initialized, but if you 
insert other variables, or move the lines, it won't work, 

The black background is set at line 115 (POKE 53281,0). The variables 
Cland C2 at line 145 are the middle shades of gray, and the value poked to 
54272+1 is the white color. Feel free to adjust them. 


COMMODORE WORLD 


Line 155 is where the complex constant (CR and Cl) is initialized, as well 
as the range (DX and DY). The range represents how far off-axis the view is: 
0.8 means the display stretches from X=0.4 to X=-0.4, with the same for Y. 

Try the program as it is, and you will get a nice fractal display in under 
four hours. Depending on the fractal, other displays will be quicker. 
Modifying the program can involve changing the constant (CR and CD), the 
loop (more loops mean sharper detail, but more time plotting), and size 
(try limiting X and Y toasmaller portion of the screen, or use STEP 2 inline 
160 to plot only every second pointasa fast way oflooking at a fractal). Also, 
the viewing range can be adjusted with RX and RY. Smaller values will show 
greater detail, but don’t set it above RX=4 or RY=4. (can you guess why?) 

Some examples of CR and CI values to try are: 


CR cl 
+0.300 0.500 
-0.122 0.745 
-0.754 0.049 
+0.354 0.536 
-0.744 0.097 
-0.756 0.097 
-0.756 0.297 
+0.736 0.097 
+0.766 0.097 


The program, by the way, plots what is called the Julia set—the set of 
complex numbers that will grow increasingly large as they are repeatedly 
squared anda constant added. The constant makes all the difference. Ifyou 
have the time, set the constant to zero and see what happens (see if you can 
predict it in advance). The white section represents the'prisoner set'— 
numbers that will not go toward infinity as you perform the calculation. 
The other colors form the ‘escape set’ (for obvious reasons) with the colors 
indicating the speed they head toward infinity. 

For the Julia sets, CR+Cl is set by you, and ZR+Z1 is initially set to the 
point being plotted. But what would happen if you were to set CR+CI to the 
point being plotted, and ZR+ZI to zero? Then the plot would be effectively 
the escape set for all Julia sets, for every constant input. This result is the 
familiar Mandelbrot set. To see it, add the line: 


163 CR=ZR:CI=Z1I:ZR=0:Z1=0 


Summary 

The Mandelbrot set and Julia sets are just a few examples of dynamic 
systems on the complex plane. In each case, complex numbers lend 
themselves to interesting and striking displays. But are they fractals? 
Recently, mathematicians proved that at least the Mandelbrot set is. Even 
though it can look like there are pieces disconnected from the main mass, 
in reality everything is one object, connected by filaments, with of course 
the fractal’s extremely high perimeter length (probably infinite, but I'm not 
sure if that’s been mathematically proven). 

Fractals of all sorts provide an insight into life that we normally don’t 
explore. One picture shows the dynamics ofa whole system, and enlarging 
the detail only adds to the richness. That there is beauty in what we see is, 
I think, the most interesting aspect of all. Esthetics are determined by a 
number of factors. Are we programmed in some way to appreciated fractal 
geometry? Is it familiar in the day-to-day world, and so we find the familiar 
comfortable and pleasant? In any case, with these programs, you can 
explore the fascinating world of fractals, and decide for yourself. 


%) 


COMMODORE WORLD 


50 


1@® rem julia set fractal display 

162 rem 

105 print "poking": fori=49152t049522: read 
x:pokei,x:c=x+c:next:ifce<>34343thenstop 

110 rem set up medium res screen 

115 poke 53280,7:poke 53281, 

120 poke 53270, peek (53270) orl6 

125 poke 53265,peek (53265) or32 

130 poke 53272,peek(53272)or8 

135 print" (CLEAR/HOME}";:dim i(3000):clr 
140 zr=@:zi=O:cr=@0:ci=@0:n=5: f=6:m=49152 

145 ¢c1=12:c2=15: fori=1024t02023:poke5427 
2+i,1:pokei,cl*16+c2:next:rem do colors 

15@ poke 53280,@:rem signal-ready 

155 cr=-@.756:ci=@.197:dx=.8:dy=.8 

160 for x=@ to 159:for y=@ to 199:zr=x/8 


@*dx-dx:zi=(2-y/100) *dy-dy:n=32 

162 poke53367,@:rem supercpu optimizatio 
n off 

165 sys m,x,y,£/8:if peek(198)then x=1le9 


167 poke53366,@:rem supercpu optimizatio 
non 

17@ next:next:poke53367,@:rem supercpu o 
ptimization off 

175 wait 198,7:getxs$ 

18@ print" {CLEAR/HOME}":poke53265,27:pok 
e 53272,21:poke5327@, 200 

530 data 76,140,192,76,14,192,76,120,192 
7641285 292 234,234 :32i:64192y.1335:4 

540 data 32,6,192,133,5,74,74,74,72,133, 
3,74,74,24,101,3,133,3,104,10,10,10 

550 data 10,10,10,133,2,24,165,5,41,7,10 
1,.2,133,,2, 144,2,230,3,165,4,,41,252 

560 data 72,24,101,2,133,2,144,2,230,3,1 
04,24,101,2,133,2,144,2,230,3,24,169 

576: data 32,101;3 4133, 3,32, 6,192,413, 72 
,165,4,41,3,73,3,170,104,224,0,240 

580 data 5,10,10,202,208,251,160,0,17,2, 
145,2,96,32,253,174,32,158,183,138 

59@ data 96,24,101,45,72,165,46,105,@0,16 
8,104,170,96,169,30,32,9,192,32,162 

60® data 187,32,155,188,165,101,133,2,16 
92.32; 9:;192), 32,162,187; 169,2;;32;,9 

61 data 192,32,40,186,169,37,32,9,192,3 
2,212,187,169,9,32,9,192,32,162,187 

620 data 169,9,32,9,192,32,40,186,32,180 
p191,169,37,32,9,192; 32, 103,184,169 

630 data 16,32,9,192,32,103,184,169,37,3 
2,9,192,32,212,187,169,2,32,60,188 

640 data 169,9,32,9,192,32,40,186,169,2, 
32:4.9y192,32,:40,.186,169),.23,32,94192 

65@ data 32,103,184,169,9,32,9,192,32,21 
2,497,169. 3:7',.32',9),.292, 32,462,187 .:169 

660 data 2,32,9,192,32,212,187,169,2,32, 
9,192:,32,.162,.187,,169),:2',.32,:9,:192',.32 

670 data 40,186,169,37,32,9,192,32,212,1 
87,,,169,,9,32,'9,192,32,162;,,187,169:,:9 

68@ data 32,9,192,32,40,186,169,37,32,9, 
192,32,103,184,169,37,32,9,192,32,212 
690 data 187,169,4,32,60,188,169,37,32,9 
,192,32,91,188,201,1,208,7,198,2,240 

70® data 3,76,155,192,165,2,32,60,188,16 
9,37,32,9,192,32,212,187,76,3,192 


always SA VE 


before you RUN 


Issue 16 


CHECKSUM 


Commodore World’s Program Entry Checking Program 
and Tips on Entering Programs from this Magazine 


CHECKSUM isa program that proofreads your typing when you enter a listing from 
the magazine. It assigns a numerical value to each character that you type, adds up 
the values of the line you typed and displays the sum. (Checksum, therefore, means 
that it checks your typing by summing the characters.) It also verifies that you have 
typed the characters in the proper order, (Checksum won't tell you ifyou missa line 
of code entirely, so verify that yourself.) Checksum runs “in the background” when 
you type in lines of program code. Whenever you type a line and press RETURN, 
Checksum will display a value. Compare that value to the value published next to 
the line of code in the magazine. If the numbers match, you've typed the line 
correctly, Simple. 


Typing in CHECKSUM 
First, type in Checksum carefully from the listing on this page. Be sure to press 
RETURN after every line to enter it into memory, Once you have typed the program, 
save it, In fact, save it a few times while you're typing, just to be safe. (This is good 
advice whenever you type in a program. I usually change the name each time I save; 
forexample, Checksuml, Checksum2, andso on.) Double-check your work, making 
sure that you've typed in every line and that you've pressed RETURN after every line 
you've typed, Ifyou make errors when typing in Checksum, a test run of Checksum 
will tell you which line is incorrect. (This safety feature works only in the Checksum 
program itself, and does not apply to any other listings in the magazine.) Whenever 
you find a typing error (in any program listing), fix it, press RETURN to enter the 
change, save the program again and try another run. Repeat this process as often as 
necessary. Important tip: Don't get discouraged if the program won't run. Be 
patient. Be thorough, It will work eventually, You'll know your Checksum is ready 
when you see the line: 

TO TOGGLE ON OR OFF, SYS XXXX 
Entering Programs Using CHECKSUM 
When you're ready to type in your first listing from the magazine, load and run 
Checksum. Make a note ofthe number that is displayed on the screen (49152 for the 
C-64; 3328 for the C-128). To activate and deactivate Checksum, type SYS followed 
by that number, then press RETURN, You need to have Checksum active whenever 
you're typing in a listing. Checksum must be deactivated, however, when you run 
the new program. The next step is typing in a new program listing as it appears in 
the magazine. 

As you begin, you'll notice that to the left of the start of each line is a number. 
Don't type this number in: It's simply the Checksum value. Stop typing at the end 
of the program line and press RETURN. If you've typed the line correctly, the 
number displayed on the screen will match the Checksum value. If the numbers 
don't match, you've made a mistake. Check the line carefully, make your changes 
and press RETURN, The computer won't know you've made a change unless you 
press RETURN on the changed line to enter it. A few type-in hints: The Checksum 
does not verify blank spaces in the program lines unless they are within quotation 
marks, because adding or omitting such spaces will not affect the operation of the 
program. The exception to this is hexadecimal Data statements. These are the Data 
statements, such as this one, that don’t have commas: 

100 DATA 12345678901234567890*123456789012345 
67890*12345678901234567890* 


In statements such as these, you must have one space between the word DATA and 
the numbers that follow. Checksum will not catch that error. 


August/September 1996 


51 


Special Key Combinations 

As you type, you may be confused the first time you see curly braces {}. These braces 
mean “perform the function explained within.” For example, {22 SPACES} means 
that you need to press the space bar 22 times. Don’t type the braces (you can’t, of 
course, because there are no curly braces in the Commodore character set), Here are 
some other common examples: 


{CLEAR/HOME} hold down the SHIFT key and press the CLR-HOME key. 


{2 CRSR DN} tap the cursor down key twice. 
{CTRL i} hold the CONTOL key and press the I key. 
{CMDR t) hold down the COMMODORE key and press the T key. 


Continue typing in your program, saving often and checking each checksum value 
with the one in the magazine, until you've finished the listing. Phew! So now you're 
ready to run your program, right? Not quite. First, save it. Second, deactivate 
Checksum by typing SYS followed by 49152 for the C-64 or 3328 for the C-128. Now 
youcanrun. Don’t be discouraged if you still get an error. It happens. Use Checksum 
faithfully. Be patient. Be thorough. It will work eventually, 


®%) 


CHECKSUM 


rem cw checksum 
mo=128:sa=3328 
if peek(65533)<>255 then mo=64:sa=49152 
i=@:ck=0:ch=0: ln=300 
40 for k=@ to 16 


beet 


6@ read b:if b>255 then goto 280 
ch=ch+b:poke sa+i,b:i=i+l 
) next j 


le<>ch then goto 28¢ 


pokesa+110, 2 
pr intchr$ 
pr int 


240: pokesa+111, 38:pokesa+140,234 

(147) sprint"cw checksum";str$ (mo) sprint 

to toggle on or off, sys";sa:if mo= gril then 27 
okesa+15,165:pokesa+25, 12 26, 


i) 
16 


ie) 


r in line"’;1n;"!":end 
rem be not phone these data statements! 
data 120,162,24,160,13,173, 4,3; 201,24, 884 


data 


@,141,0,255,133,17¢ 
pore en 1] 
240,58,201,48, 144,7 


232, 208, 240, 189, 0 


34,6 SF We 


) data 
data 
data 


478 


data eee 


data 


COMMODORE WORLD 


Usar troup counzedion 


Looking fora Commodore user group in your area? User groups can help you solve problems, keep 
you informed of new products and events that might be of interest, and give you a chance to share 
your computing experiences with others who enjoy Commodore computing. The following are 
confirmed groups and verified addresses, registered with Commodore World. 


Z \@l0ye 
are. 


your local 


ALABAMA NEBRASKA 


H.A.C.K.S., 9408 Lynn’s Terrace, Huntsville, AL 35802 


CALIFORNIA 
South Bay Computer Groups, PO Box 189 ,Chula Vista, CA 
91912-1899 
Southeast San Diego C-64 User’s Group, 9830 Dale Ave. #24, 
Spring Valley, CA 91977-2445 
Commodore Technical User’s Group, 2231 E. Trenton Ave., 
Orange, CA 92667-4451 
Civic 64/128, PO Box 2442, Oxnard, CA 93034 


COLORADO 
Colorado Commodore Computer Club, 12246 Monroe Place, 
Denver, CO 80241 


FLORIDA 
Fort Walton UserGroup, 221 Baker St, Fort Walton Beach, FL 
32548 
Lake/Sumter C.U.G., PO Box 416 , Leesburg, FL 34748 


GEORGIA 


Stone Mountain User's Group, 703 Waldan Walk Cir., Stone 
Mountain, GA 30088 


ILLINOIS 
Illinois Commodore Users, P.O. Box 781, McHenry, IL 60050 
Sandwich Computer User Group, PO Box 23, Sandwich, IL 
60548-0023 
Commodore Club of Rockford, PO Box 6341, Rockford, IL 
61125-1341 


MARYLAND 


Meeting 64/128 Users Through the Mail, 4427 39th Street, 
Brentwood, MD 20722-1022 

Gaithersburg Commodore User’s Group, P.O. Box 5712, 
Durwood, MD 20855-0712 

N.LS.T, 3124 Pheasant Run, Ijamsville, MD 21754 


COMMODORE WORLD 


oa 


Greater Omaha Commodore User's Group, PO Box 241155, 
Omaha, NE 68124-5155 


TEXAS 
Crestview Computer Club, 401-A Northern Dove Ln. ,Coperas 
Cove, TX 76522-8432 


VIRGINIA 
NOVACOM, 9206 Annhurst Street , Fairfax, VA 22031-1902 
Washington Area CUG, 7728 Viceroy Street, Springfield, VA 
22151 


VERMONT 


Green Mountain Commodore User’s Group, PO Box 6087, 
Rutland, VT 05702-6087 


WASHINGTON 


Island Commodore User Group, 1675 N. Rientjes Ln ,Oak 
Harbor, WA 98277 
Vancouver CUG, 1903 E. 9th St. ,Vancouver, WA 98661 


WISCONSIN 
Milwaukee Area Commodore Enthusiasts, PO Box 26216, 
Milwaukee, WI 53226-6216 
Computer Users Support Group, PO Box 085682, Racine, WI 
53408-5682 


CANADA 


TPUG, 3605 Lakeshore Blvd. West, Box 48565, Etobicoke, 
Ontario, Canada M8W 4Y6 


NEW ZEALAND 


Christchurch Commodore Users’ Group, P.O. Box 4665, 
Christchurch, New Zealand 


2 Issue 16 


GEOCABLE Il 
Parallel Print Cable 


E X P A N OD 
YOUR SYSTEM 


3 SLOT CARTRIDGE PORT ©&XPANDERS 


The EX2+1 and EX Cartridge Port Expanders bring new 
expandability to you Commodore 64 or 128. Combine the 
use of compatible cartridges. Disable cartridges notin use. 
Change the address your computer finds a cartridge at. 
Avoid the constant changing of cartridges that puts extra 
wear on your cartridge port. The EX3 offers 3 vertical 
expansion slots, while the EX2+1 provides 2 vertical slots 
and 1 horizontal slot. Both units offer 7 switchable signals 
per slot, address mapping on slot 2, and a reset button. 


CALL 1-300-633-3263 
<1 


ee tie ime 


The Most Advanced Parallel Print Cable Ever! 


¢Uses Standard Cable ¢ Faster Output 
Equipped with a female DB-25 Parallel printing offers up to a 
cable connector to allow use of 40% increase in output speed. 


standard 'PC' printer cables. ¢ GEOS Drivers Included 

* Switchable Pass-thru Includes GEOS drivers plus 
Allows connection of printer and useful GEOS utilities like 
other user port peripherals such MacAttack II, WrongisWrite, and 
as modems without conflicts. GEOS CONVERT. 


GEOCABLE-II (6 ft.) ONLY $29.00 GeoCabie Il is compatible with GEOS, Pertect 
GEOCABLE-II (15 ft.) ONLY $34.00 Print LO, Action-Replay MK VI. Superbase. 
Shipping: US $5.00, Canada $7.00, Superscript, Paperciip Ill, and all software that 


Foreign $25.00, Supports User port parallel printing. 
P.O. Box 646 Orders: 800-638-3263 


ChAD East Longmeadow, MA 01028 Info: 413-525-0023 
Need Input? It Doesn’t Get Any Better Than This... 


For years, Commodore set the standard with the 1351 $49.95 
Mouse. Sure, it was vastly superior to using the old digital Plus S/H 
input devices like the 1350 mouse, joysticks or imitation 
trackballs. But everything can be improved. Guaranteed 
100% 1351-compatible, SmartMouse and SmartTrack 
do everything the C-1351 does and more! These highly 
intelligent, three-button input devices include a built-in 
battery-backed Real-Time Clock, along with double-click 
and Turbo features for GEOS. Plus, they come with a 
complete set of utilities for using the clock in GEOS and 
BASIC applications. Modern ergonomic designs make 
these devices smooth operators that are a pleasure to 


Creative Micro Designs, Inc. 


Creative Micro Designs, Inc., P.O. Box 646, East Longmeadow MA 01028 


use. So, if you're tired of the slow, erratic movement of 
your current input device, make the intelligent choice and 
pick up a SmartMouse or SmartTrack today! 


SmartMouse and SmartTrack... the Best C-64/128 Input Devices Ever! 


Three buttons means convenience! If you’re a GEOS user, the left * SmartMouse/SmartTrack utilize the same advanced technology 

button is configured as single click, the right as a handy double used in today’s powerful 486 and Pentium PC’s, providing you with 

click and the center button is the TURBO button. When depressed, unparalleled accuracy and smoothness. 

itdoubles the speed at which the pointer moves acrossthe screen. . Built-in battery-backed Real-Time Clock automatically sets the GEOS 

Additionally, programmers can assign their own functions to all clock, displays time and can be used in your own programs. 

siete sean ahaiiagenioas Includes utilities disk and detailed manual explaining the utilities 

Unlike other third party mice or trackballs, the CMD SmartMouse and programming information. 

and SmartTrack trackball use the same custom gate array pe aS Attention Lefties! SmartMouse can be altered for left handed use. 
" i, t ty. 

UNS CI MOR ORR SOTST! MAUSS SOA UANSIRG TEE CoMmaA ¥ Don’t be fooled by the old style digital "trackballs". These only 

Switches easily into joystick emulation mode on power-up by perform as well as a joystick. SmartTrack uses analog inputs for 

holding down the right button. greater accuracy. 


August/September 1996 53 COMMODORE WORLD 


Over The kdge.. 


by Harold Stevens, Jr. 


Ky 


AHOY THERE, NO PIRATES ALLOWED! 


With the absence of commercial software for the 
Commodore 64, piracy is on the rampage again, 
particularly when it comes to games, utilities 
and GEOS. This is something that no computer 
user should tolerate as it is both illegal and 
immoral. 

Several years ago, I gotintoa heated discussion 
with a couple of users on a local Commodore 
board who were boasting about their ability to 
pirate software. These people justified their 
actions on the fact that thereisnonew commercial 
software available in this country and they have 
every right to “steal the warez” that continue to 
beproducedin Europeandabroad, ascommercial 
producers are ignoring the large followers of 
Commodore users that continue to flourish in 
North America. 

If my memory serves me correctly, these were 
also the same people who did the same thing 
when commercially produced software was being 
distributed at the height of Commodore 64's 
popularity back in the mid-to-late 1980s. At that 
time their excuse was that the cost of software 
was too high and they had the right to “steal the 
warez” and distribute it to those who owned 
computers, but could not afford to shell out the 
money to support their hobby. Many of them 
fashioned themselves as modern day Robin 
Hoods and devoted computer bulletin board 
systems exclusively to pirating. 

When I pointed out how wrong their actions 
were, one or two of these hackers became upset 
and flamed me by calling me “lame” ora couple of 
other cyberpunk terms that is not worth 
repeating. It appeared that they took the attitude 
that they were doing nothing wrong. 


COMMODORE WORLD 


One thing | have discovered about those 
who hack software is that they are usually 
young and have a distorted sense of morality. 
Usually they don’t get caught until they start 
serious hacking into the computer files of 
government offices, corporations or computer 
bulletin board systems. There were instances 
of a couple of high school aged kids in the 
Columbus, Ohio, area who were arrested by 
local and federal law enforcement officers 
because of their hacking. And these kids were 
doing their hacking with C-128 computers. 

Many of these people don't realize it, but 
software piracy is among the top reasons that 
commercial software producers pulled 
themselves out of the Commodore market. How 
could these producers make money, when all 
people had to do to get their software was to log 
on to a pirate board and download a game or 
application that was zipped, lynxed orarced into 
asingle file. For those who didn’t want to pay out 
money to get software,this was a convenient way 
to get something for nothing. 

This problem will probably never go 
away, as I have noticed quite frequently in 
the Commodore newsgroups on the 
Internet’s usenet of people asking for copies of 
long dead games and applications. Several times 
I have had to send a curt E-mail reply to several 
Commodore users in Europe seeking pirated 
copies of GEOS version 2.0 and warn them that 
they were in violation of American and 
international copyright laws in distributing 
software in this manner. 

Because of the selfish actions of pirates 
like these, all of the Commodore 64/128 


54 


users have suffered. I also should point out 
that software piracy is not just limited to 
the Commodore computers either. Already, 
we are starting to see the impact that 
software piracy is having on Amiga 
computers, as well as IBM types and 
MacIntoshes. Itis becoming such a problem 
that the software industry had to have 
Congress amend the copyright laws to 
protect themselves and the software 
producers have put pressure on federal 
agencies to enforce those laws protecting 
intellectual properties. 

As one who writes professionally, there is 
nothing more hideous than someone who would 
steal my work and not compensate me for it. If] 
were a programmer, | would feel the same way, 
particularly after putting in hours creating a 
program, utility or game, hoping to make a 
profit, only to find somebody else stealing that 
work and distributing to others because of a 
twisted sense of morality. Particularly those 
individuals who feel that he or she has a right to 
my work without compensating me for it. In my 
book that’s outright theft and it’s wrong. 

So, if you still are pirating copyrighted 
software, do us C-64/128 users all a favor and 
knock it off. After all, we still want to enjoy our 
favorite eight bit computers well into the 21st 
Century, don’t we? 


§) 


Harold Stevens, Jr. is an avid Commodore 64 and 
GEOS user and is the Friday night Commodore 64 
Roundtable Conference (RTC) host on Genie. His 
internet addressis hstevens@freenet.columbus.oh.us 


Issue 16 


USED SOFTWARE 


We buy, sell, and trade used original software. Lowest 
prices for C64, C128, Amiga, and IBM. Mention this ad 


nent FOTN ete 


— “the Gatekeeper 
¢.. 610 First St. 


Sample: $2.95 
6 issue sub: 


and your computer type for a free list. Call our BBS for a 
complete list within minutes. 


BBS: 
8N1 1200-28.8k 
616-429-7211 


Ask for a list via Internet: 
CENTSIBLE@DELPHI.COM 


Everythingfor Commodore Computers 
Sell» Trade» Repair * Buy 
1420 County Rd. 914 
Burleson, TX 76028 
817-295-7658 
817-447-6974 - Voice/FAX line 


Call or write: 


GENTSIBLE 
SOFTWARE 


P.O. Box 930 
St. Joseph, MI 49085 
Phone: 616-428-9096 


64/1541 Repair - $40 
*S PECIAL* 
C64, 1541, J-S+Sft. - $99 


We carry a full line of hard- 
ware, software & maga- 
zines, both new & used, in- 
cluding European items. 
Our flat-rate repairs in- 
clude both parts & labor. 
Call for details. Trade in 
your unwanted items. 

Catalog - $2.95 

Aut Mayor Creoit 


Caros ACCEPTED. 


We carry a full line of 
Amiga Products. 


ALL STORE [TEMS HAVE A 90 DAY WARRANTY. IF, FOR SOME 
REASON YOU ARE DISSATISFIED IN YOUR PRODUCT, YOU MAY 
RETURN IT FOR REPLACEMENT OR STORE CREDIT ONLY. 
SORRY, NO REFUNDS, 


UPGRADE YOUR COMMODORE!!! 


Refurbished Hardware New Hardware 


Drives New APROTEK Accessories 
1541/C $89.95 C24-2400 Baud (64/128) $74.95 
41 wiDips $104.95 64C- $114.95 User Switch $30. 95 
1541-11 $119.95 128- $174.95 Convert-A-Com $29.95 


1571 $159.95 128D $324.95 
1581 «$174.95 SX-64 $349.95 PR eg a eae 
ystem’ 
MSD-2_ $149.95 1660 $24.95 JittyDOS 128/128D ‘System’ oP. oe 
1OOISFD $129.95 1670 $39.95 jo8Kernal $59.95 64Kernal $49.95 
S $324.95 B.I. Buscard-Il $59.95 additional JiffyDOS Drive ROM $34.95 
Mono’s $44.95+ 1530 Datasette $34.95 RAMLink Bs. $209.95 clvOMB $274.95 
Miscellaneous ciw1MB $319.95 cw 4MB_ $479.95 
Books$10-$15 Printer Interfaces $49.95+ Real Time Clock (Optional) Add 
Prog’s $5-$20 — Epyx Fastload Cartridgo $34.95 FD-2000 
$49.95 NEW Super Snapshot v5.22 
Super Grafix Jr, $39.95 1750 Supercione REU 512K 
Ask For Anything! We May Have It! 


J.P. PBM Products By Mail Send CDN Funds/15% USA Exchange 
Box# 60515, N. Sheridan Mall P.O 15 day Warranty On Returbished Hdwr. 
Downsview, Ont. Canada M3L 1B0 Allow 4-6 weeks for delivery 

Tax-Canada + 7%GST, Ontario +8% PST 1996 Catalogue Disk (64 Format) — $2 
Shipping-($0-S25=$4, $26-$99=10%, $100-$199=8%, $200-S499=7.5%, %500=-6%, USA=15%) 


FREE CATALOG 


With Tons of Commodore Stuff! 


FREE CATALOG 
Parsec, Inc. 

P.O. Box 111- CW 
Salem, MA 01970-0111 
USA 


Write to: 


August/September 1996 


Write promens in 

C, build a lightpen, 
know all about the 
latest products like 
4-Scan, Novaterm 9.6 
and 64NET, and learn 
how to Fill Advanced 
64/128 users want 
more. We have it. 


Send check or money 
order for $19.95 to: 
CREATIVE PIXELS LTD. 


CREATIVE PIXELS PRESENTS 


New for the C-64 / 128 
The Ghost of 

Genghis Khan 

*Movie Style Storytelling 

*Super Graphics 

*Arcade Action 

*One or Two Players 

Also Available: 

THE WINGS OF CIRCE 

ESCAPE ROUTE 

ISLAND OF THE DRAGONS 


P.O. Box 592 
Library, PA 15129 


PREHISTORIC MAN 


CW & RUN BACK ISSUES 


For years, RUN Magazine provided Commodore Users with a great source 
of information, and now CMD has given you Commodore World. Don't let this 
valuable information slip away—fill in the voids in your library now! 


RUN Magazine Back Issues 
Any 3 issues for $12.00, any 6 for $18.00, 
or any 12 for only $24.00 


RMJUNSO 
RMDEC90 
RMJAN91 
RMJUN91 
RMJAN92 
RMMAR92 
RMMAY92 


RMJAN89 

RMFEB89 

RMMAY89 
RMJUN89 

RMJUL89 

RMAUG89 
RMSEP89 

RMOCT89 
RMSP89 


January 1989 
February 1989 
May 1989 

June 1989 

July 1989 

August 1989 
September 1989 
October 1989 
Special Issue 1989 
RMJANSO January 1990 
RMMAY90 May 1990 


Shipping: 3-6 issues - U.S. $3.00, Canada $5.00, Foreign $15.00; 
12 issues U.S. $5.00; Canada $7,00; Foreign $20.00. 


Commodore World Back Issues 
$4.95 each, or any 3 for only $12.00 


June/July 1990 
December 1990 
Jan/Feb 1991 
JuneJuly 1991 
Jan/Feb 1992 
March/April 1992 
May/June 1992 
RMJUL92 July/August 1992 
RMSEP92 Sep/October 1992 
RMNOV92 Nov/December 1992 


Ccws 

cw10 
cw 
Cwi2 
cw13 
cw14 
CW15 


Commodore World Issue 1 
Commodore World Issue 2 
Commodore World Issue 3 
Commodore World Issue 4 
Commodore World Issue 5 
Commodore World Issue 6 
Commodore World Issue 7 


Commodore World Issue 9 
Commodore World Issue 10 
Commodore World Issue 11 
Commodore World Issue 12 
Commodore World Issue 13 
Commodore World Issue 14 
Commodore World Issue 15 


Shipping: U.S. and Canada $2.00 for first issue, plus 
$1.00 per additional issues.; Foreign $5.00 per issue. 


TO ORDER CALL 1-800-638-3263 


COMMODORE WORLD 


* CLASSI 


ED SHE 


C64/128 PUBLIC DOMAIN. REQUEST FREE CATALOG OR 
SEND $2 FOR A DEMO & CATALOG. CALOKE IND., P.O. 
BOX 18477, RAYTOWN, MO. 64133. VISA-M/CARD 
ACCEPTED. 


C= Hacking in Print! $6.00 N simply a printout! 


NE 68007. 
$12.00. Prices 


Jim Brain,10710 Bruhn Ave, Banniage on, 
SYS.CBM 


Printout of COMP. 
include shipping. 


FAQ: 


monthly 
2 year. 


7301- 


Ss publica . 


Ko oO 


The Ultimate System III (Lottery Prgram) 
Ultimate Grade Book (For teachers) $19.95 
To Order: CALL (202-316-1803/Tony) 
Tolson, P.O. Box 62326, Wash., 


, The 
each. 
Write: A. 
2326. 


DC 20029- 


CMD 4MB RAMLink 
Excellent Cond. 
3636 Gra ind 


write: 


For Sale: (2) Vic 20 computers w/ PS, (1) 1541 
Drive w/ Cables, (1) 1530 Datasette. Best Offer. 
George York: (501) 481-5682 after 4 pm (CT) 


rinter, 
sottware 


For Sale: C- 128/1571/1902A segue ee 
300 modem, C64/1541, 30+ ted 

(educ. 
condition. 


/games/office) - extr 
$275 


HELP! I have "Titanic-The Recovery Mission" and 
I'm Stuck! Can anyone help me, Please? Robert 
Wallace, 131 White Horse Park, Absecon, NJ 
08201-2402 


D-64, DD $79. 95, C-128, 1571 $119. 
Cables, Monitors, Software! 


complete list. Dept C315, 
97440. 


95, A50 
Send 


POB 10121, 


E for 
Eugene, OR 


C-128D, 2nd 1571, 1084S, SP-1000VC. New Unopened: 
GEOS 128 2.0, CadPak 128, WordPro 128. Many 
Extras. Works Great. $500.00 Delivered. (502) 
828-8328. 


FREE COMPUTER MAGAZINES! 
For list send SASE to: 
Williams Ave., Hastings, 


pay the shipping. 
2s Lambert, 1121 
NE 68901-3820. 


Don’t wait until it’s too late... 


RENEW EARLY| 


Is your Commodore World subscription close to 

running out? Here’s an easy way to check: look at the mailing label on the 

front of your copy. You'll find your subscription number and the expiration 
James Smith 123458 


issue number. For example: 
XP17 
123 Home Street 


Grand Rapids, MI 49502-0123 


Jim's subscription will run out with Issue 17 as indicated by the 
EXP17 in his subscription code. Jim would be wise to re-subscribe 
early to avoid missing a single issue of Commodore World! 


COMMODORE WORLD 56 


ADVERTISERS 
INDEX 


Caloke Industries 
Centsible Software 
Commodore Country 
Computer Power User 
Commodore World 

CW Game Special 
Computer Bargain Store 


Creative Micro Designs 
Creative Pixels 
Gatekeeper 

GEOS Publication 
Integrated Teknologies 
Intercorp 

J.P. Products by Mail 
Loadstar 

Parsec 


SOMWVSE:SUPPOMNAG cscvisasisacsvisssnissnamnwenavnes 5 
Tech Star 


COMMODORE WORLD 
Classified Advertising 


Commodore World subscribers may place non-commercial 
classified advertising in Commodore World at a cost of 


$10.00 per issue. Your advertisement may contain up to 
150 characters (including spaces). Send your 
advertisement with paymentto: CW Classified Advertising, 
c/o Creative Micro Designs, Inc., P.O. Box 646, East 
Longmeadow MA 01028-0646. 


ChAD Service Center 


AFFORDABLE ¢ FAST ¢ DEPENDABLE 
Call Today 1-800-638-3263 


We repair the following equipment: Commodore C-64, 64C, SX-64, C-128 
and C128-D computers; 1541, 1541C, 1571 and 1581 Disk Drives plus 
CMD Devices. JiffyDOS Installations a specialty. All repairs warranted for 
30 days. Minimum charge $35.00 plus parts and return shipping. You must 
contact CMD for authorization before sending any equipment. 
Creative Micro Designs, Inc. P.O. Box 646 E. Longmeadow, MA 01028 


Issue 16 


tT TH (iit Mii) 


TTT THAT MTT 
H Hi i, Hi titi au UU ] 
J y 


HH, oll} i 
aed | Sains | im | = r Ht 
there “tin in ee TTT 
m ) fii) | ie 
= | AA iii, pil 


i i e Nt My Hy 


For more than‘ fwWo years, 
World has empowered C- ae 


Why 
Hh 


providing the latest’ news. ANI 
on the world of Commodorevcomputing: ihe 


Through our, staff of lea) sxperts Re. ute . ‘i { 
Jim) ButterfieldiyMaurite Hendal/Mene! 3 nm) 

Oral ebp youl in tou sca Abele i 
wi gies and Turtheyexblpfe': eee lll 


Pesce 


have sien Pre eae 
r _ SuBSoribe: of 


8 of Commodore history—for the price of subscribing! 


. Your cho ee 
id P a Con mr mpdore C-65  oitpettl 


; = é ot > . 7. 
“Cejll 1-200.438-3253—  gBEalbheysuver CPU 


UM 
wah 
Nass i “Nt Wa Tobe | ve! 


yaa ane subscription or renevnnol aa nd 3 Jace Prizes: 
il! qr 3Y p3, 36 Accelerator 


f Mi 1 


} bil 


Contest valid on new subscriptions or renewals, N 


Must be received by q (12) 7 aa 
September 30, 1996 to be/eligible for thé sweepstakes. Winners, ii 
announced in CW Issue 18. Gontact CMD force i i 20, oy D 5 Gitt Certificates 


Be a ey comm cam mam mm So oo - side cena | iin aa Que a vee Wu Seweme neem om CEES ENA GEES OSD eS os 


Please begin my subscription to Commodore World as soon as possible, snd enter me in the sweepstakes! 


Subscriber Information Payment Information 
Name: __ _ — OQ Bill me later (one year subscriber only) 


Address: _ Q) I've enclosed a check or money order in U.S, Funds 


City: _ State/Prov. ZIR/PC: Q Bill subscription to my credit card: (Check one) 
Country: __ Phone: ( L) Visa LY MasterCard L) AMEX L) Discover 


One Year Subscription (Eight Issues) Card Number:____ ___ Exp. Date: ___ 
United States.....0...... $29.95 Canada & Mexico......$35.95 Signature: _ 


Europe (EC Only)......$45.95 Other Foreign... b579S ‘ 
Mail payments to 


Back Issues: 


7, 


Ultra Fast! ’ 


SN f 
“il ay h 
aif mith — 

1 By AN) ll Mi 


HAH 


p Wadi | 
09 


plus $7.50 S&H 


64 Model Available Now 
128 Model Coming Soon! 


Vat at ‘i \ 


Compatible! 
Easy to Use! 


iy 


a a Bai 


\ 
Er at will \V 


1 -800-638-3263 


(NoneFri. y in. = J) O.ffs EST)